如何在android中选择最上面的视图

如何在android中选择最上面的视图,android,android-linearlayout,android-inflate,Android,Android Linearlayout,Android Inflate,我正在尝试在另一个视图上添加一个视图 首先,我通过xml设置一个视图,然后我想通过编程方式添加第二个视图。 创建时的公共void(Bundle savedInstanceState) } 我的问题是xml位于我试图添加的视图之上 如何在顶部创建第二个视图?您可以调用视图的方法: 您可以调用视图的方法: LinearLayout是一种在垂直或水平方向上依次排列其子级的布局。如果要将视图一个叠在另一个上,则使用允许这样做的布局,如相对布局,而不是线性布局线性布局是一种将其子对象一个接一个地垂直或水平

我正在尝试在另一个视图上添加一个视图

首先,我通过xml设置一个视图,然后我想通过编程方式添加第二个视图。 创建时的公共void(Bundle savedInstanceState)

}

我的问题是xml位于我试图添加的视图之上

如何在顶部创建第二个视图?

您可以调用视图的方法:

您可以调用视图的方法:


LinearLayout
是一种在垂直或水平方向上依次排列其子级的布局。如果要将视图一个叠在另一个上,则使用允许这样做的布局,如
相对布局
,而不是
线性布局

线性布局
是一种将其子对象一个接一个地垂直或水平排列的布局。如果要将视图堆叠在另一个视图之上,请使用允许这样做的布局,如
相对布局
,而不是
线性布局

如果要将视图堆叠在另一个视图之上,则应使用相对布局。因此,在您的例子中,用相对布局替换“布局”,在java代码中,您可以执行如下操作

    RelativeLayout.LayoutParams baseLayoutParam = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
    baseLayout.setLayoutParams(baseLayoutParam);
    DrawView drawView = new DrawView(context);
    RelativeLayout.LayoutParams rLayoutParams = new RelativeLayout.LayoutParams(android.view.ViewGroup.LayoutParams.FILL_PARENT, (int) (250 * Utility.getDip(context)));
    rLayoutParams.addRule(RelativeLayout.CENTER_IN_PARENT); // Adjust accordingly to your requirement
    drawView.setLayoutParams(rLayoutParams);ll.addView(drawView);

如果要将视图彼此堆叠,应使用相对布局。因此,在您的例子中,用相对布局替换“布局”,在java代码中,您可以执行如下操作

    RelativeLayout.LayoutParams baseLayoutParam = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
    baseLayout.setLayoutParams(baseLayoutParam);
    DrawView drawView = new DrawView(context);
    RelativeLayout.LayoutParams rLayoutParams = new RelativeLayout.LayoutParams(android.view.ViewGroup.LayoutParams.FILL_PARENT, (int) (250 * Utility.getDip(context)));
    rLayoutParams.addRule(RelativeLayout.CENTER_IN_PARENT); // Adjust accordingly to your requirement
    drawView.setLayoutParams(rLayoutParams);ll.addView(drawView);

边际利润不也应该这样做吗?或者这就是为什么你在线性布局中使用边距?@roiberg我不知道你的确切布局以了解发生了什么,但我认为边距不起作用。如果你想让你的应用程序在所有的手机屏幕上看起来都不错,而不仅仅是在当前的屏幕上,那么即使它起作用,你也可能不想使用边距。边距难道不应该也起作用吗?或者这就是为什么你在线性布局中使用边距?@roiberg我不知道你的确切布局以了解发生了什么,但我认为边距不起作用。如果你想让你的应用程序在所有手机屏幕上看起来都不错,而不仅仅是在当前的屏幕上,那么即使它起作用,你也可能不想使用边距。当我这么做的时候,它会让视图消失得很奇怪。能否尝试将视图添加为第一个视图
ll.addView(drawView,0)
正如@Luksprog所指出的那样,我认为真正的问题在于布局的选择。当我这样做时,会使视图消失。能否尝试将视图添加为第一个视图
ll.addView(drawView,0)
正如@Luksprog所指出的,我认为真正的问题是布局的选择。
    RelativeLayout.LayoutParams baseLayoutParam = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
    baseLayout.setLayoutParams(baseLayoutParam);
    DrawView drawView = new DrawView(context);
    RelativeLayout.LayoutParams rLayoutParams = new RelativeLayout.LayoutParams(android.view.ViewGroup.LayoutParams.FILL_PARENT, (int) (250 * Utility.getDip(context)));
    rLayoutParams.addRule(RelativeLayout.CENTER_IN_PARENT); // Adjust accordingly to your requirement
    drawView.setLayoutParams(rLayoutParams);ll.addView(drawView);