我正在尝试以编程方式将一些TextView放入我的活动中。问题是我无法设置它们的边距(上边距),因此它们之间存在一些空间。
XML布局结构如下:
<ScrollView>
<RelativeLayout_1>
<RelativeLayout_2>
<TextView/>
<EditText/>
</RelativeLayout>
</RelativeLayout>
</ScrollView>
我省略了所有不必要的信息。
然后在我的活动中我做了
mLayout = (RelativeLayout) findViewById(R.id.relative_layout);
RelativeLayout.LayoutParams relativeParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
relativeParams.addRule(RelativeLayout.ALIGN_LEFT, R.id.handicap_layout);
relativeParams.addRule(RelativeLayout.BELOW, R.id.handicap_layout);
TextView[] texts = new TextView[6];
for(int i=0; i<6; i++) {
texts[i] = new TextView(MyActivity.this);
texts[i].setText("Text " + (i+1));
texts[i].setTextSize(20);
relativeParams.setMargins(0, 10+(10*i), 0, 0); /* trying to increase the margin */
texts[i].setLayoutParams(relativeParams);
mLayout.addView(texts[i]);
}
其中mLayout指的是RelativeLayout_1,handicap_layout指的是RelativeLayout_2。
问题是边距不会增加,TextView会一个显示在另一个之上。
有没有人有解决方案?谢谢!
好的,我设法解决了这个问题:必须在内部 for循环中声明LayoutParams。 感谢。
答案 0 :(得分:0)
获取一个textview xml文件。在那里拿利润。一旦完成,就会夸大该textview。
TextView itemview = (TextView)getLayoutInflater().inflate(R.layout.equipment_item, null);
完成后,将文本设置为该布局。
我认为你可以找到正确的相对布局。然后将该项目视图添加到相对布局,如下所示。
equipmentdetails_layout.addView(itemview);
然后你可以获得边距。