安卓在java代码中设置RelativeLayout
我很难让两个文本视图在java代码中相互重叠。以下是我正在试验的代码:
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
layout = new RelativeLayout(this);
text1 = new TextView(this);
text1.setText("1");
text2 = new TextView(this);
text2.setText("2");
RelativeLayout.LayoutParams p = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
RelativeLayout.LayoutParams q = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
q.addRule(RelativeLayout.BELOW, layout.getId());
text1.setLayoutParams(q);
layout.addView(text1);
p.addRule(RelativeLayout.BELOW,text1.getId());
text2.setLayoutParams(p);
layout.addView(text2);
setContentView(layout);
}
这将两个文本视图堆叠在同一行上,但我希望TextView text2显示在TextView text1下面,因此在我的应用程序中,我希望以下内容显示为输出:
1
2
我用“addRule”方法尝试了各种各样的事情,我不确定为什么这不起作用。我想知道在没有XML的情况下如何做到这一点,因为我计划构建一个方法库,它可以构建一个布局,通过编辑数组可以轻松调整布局
# 1 楼答案
您可以为此使用xml布局:
在相对布局中 设置第一个文本视图并为其分配一些id 对于下一个文本视图,我们可以指定参数 android:layout_down=“上面文本视图的id” 这样我们就可以在第一个文本视图下面看到第二个文本视图
# 2 楼答案
你的
TextViews
没有id(默认id是-1
)。。。在初始化之后再做如下操作:# 3 楼答案
我不认为你想在RelativeLayout下面布局text1视图,因为你在小时候把所有视图都添加到了它,对吗?尝试删除第一条规则;该规则要求文本视图低于它所在的视图
编辑:另一个帮助是显式设置布局所依据的视图的id
所以这里: