0

我的 XML 文件中有水平方向的线性布局,我正在尝试使用下面的代码添加文本视图。

LayoutParams lparams = new LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
TextView tv=new TextView(this);
tv.setLayoutParams(lparams);
tv.setText("Sample");
myLinearLayout.addView(tv);

以类似的方式添加 5 个文本视图看起来不错,但如果我尝试添加更多文本视图,它们将移出屏幕。我知道使用水平方向会在水平方向上对齐所有视图。但是我怎样才能对我的设计/代码进行更改,以便隐藏的文本视图自动移动到下一行。任何人都可以建议我。提前致谢。

4

3 回答 3

1

LinearLayout是水平的或垂直的,但不能两者兼而有之。

您可以使用GridLayout,也许这更适合您的需求。

于 2013-09-08T05:35:17.803 回答
1

您需要将 xml 文件中的主要布局方向设置为 Vertical,然后以编程方式添加新的 LinearLayout,每行中有 5 个 textview,如下所示:

 LinearLayout innerlayout = new LinearLayout(this);
 innerlayout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
                                             LayoutParams.WRAP_CONTENT));
 innerlayout.setOrientation(LinearLayout.HORIZONTAL);
 innerlayout.addView(tv);
 innerlayout.addView(tv1);
 ....
// add innerlayout to main layout myLinearLayout
  myLinearLayout.addView(innerlayout);
于 2013-09-08T05:36:37.843 回答
1

您可以TextView使用循环添加。在循环内,您检查右边缘的 x 坐标TextView是否等于屏幕的宽度。如果是这样,您可以根据需要改变 y 坐标,然后继续添加TextViews. 您将不得不将您的更改ViewGroup为不受限制的(即RelativeLayout

于 2013-09-08T05:39:56.373 回答