1

我有 5 个文本视图,它们是动态添加的,但每个文本视图都覆盖了其他文本视图。如何将每个 textView 添加到特定行?

for(int z=0;z<c;z++){
    TextView lastHour = new TextView(projectActivity.this);
    lastHour.setPadding(5,z*35,0,0); // it currently allows me to see each textView in other line
    lastHour.setText("text"+z);                 
    relative_layout_for_last.addView(lastHour);
}

当我使用 setPadding 时,textView 的背景会被拉伸。我只想在之前的 textViews 之外的其他行中添加每个 textView。

4

4 回答 4

2
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
             50, (LayoutParams.WRAP_CONTENT));
        lp.leftMargin=5;
or(int z=0;z<c;z++){
    TextView lastHour = new TextView(projectActivity.this);
    lastHour.setPadding(5,z*35,0,0); // it currently allows me to see each textView in other line
    lastHour.setText("text"+z);    
    lastHour.setLayoutParams(lp);             
    relative_layout_for_last.addView(lastHour);
}

像这样,您可以像在 XML 中一样添加自己的布局参数,并在您的视图中大致设置文本视图。

于 2011-12-23T11:33:16.497 回答
1

您可以将它们包装在线性布局中并将方向设置为垂直。

http://developer.android.com/reference/android/widget/LinearLayout.html

如果您需要任何代码片段,请询问。我在这里有点着急;)

于 2011-12-23T11:11:02.223 回答
0

填充不会做你想要的。它只会增加顶部和内容之间的空间。或者像 Bram 所说的那样将它们添加到具有垂直方向的 LinearLayout 中,或者如果您愿意保留您的 RelativeLayout,请添加一个 layout_below 约束,指定视图的 id 在顶部。

于 2011-12-23T11:13:19.010 回答
0

您应该使用 aLinearLayout来包围您的TextViews. 布局的方向应该是vertical.

如果你需要坚持RelativeLayout你应该添加这个:

layoutParams.addRule(RelativeLayout.BELOW, theTextViewAbove.getId());
于 2011-12-23T11:13:46.420 回答