Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将文本视图添加到.java文件中的线性布局_Android_Android Layout_Android View - Fatal编程技术网

Android 将文本视图添加到.java文件中的线性布局

Android 将文本视图添加到.java文件中的线性布局,android,android-layout,android-view,Android,Android Layout,Android View,我的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); 以类似的方式

我的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个文本视图看起来不错,但如果我尝试添加更多文本视图,它们将移出屏幕。 我知道使用水平方向会将所有视图按水平方向对齐。但是,如何更改设计/代码,使隐藏的文本视图自动移动到下一行。 有人能推荐我吗。
提前感谢。

线性布局既可以是水平的,也可以是垂直的,但不能两者兼而有之


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

LinearLayout
可以是水平的,也可以是垂直的,但不能两者兼而有之


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

您需要将xml文件中的主布局方向设置为垂直,然后以编程方式添加新的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);

您需要将xml文件中的主布局方向设置为垂直,然后以编程方式在中添加新的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);

您可以使用循环添加
TextView
。在循环内,检查
TextView
右边缘的x坐标是否等于屏幕宽度。如果是这样,您可以根据需要改变y坐标的一定量,并不断添加
textview
。您必须将
视图组
更改为限制性较小的视图组(即
相对视图

您可以使用循环添加
文本视图
。在循环内,检查
TextView
右边缘的x坐标是否等于屏幕宽度。如果是这样,您可以根据需要改变y坐标的一定量,并不断添加
textview
。您必须将
视图组
更改为限制性较小的视图组(即
RelativeLayout

这是个好主意。但每行中文本视图的数量不应该是固定的。如果第一行没有空格,它必须对齐。这是个好主意。但每行中文本视图的数量不应该是固定的。如果第一排没有空间,它必须对齐。我喜欢这个简单的想法。我忘了,如果没有空间,网格布局会对齐。谢谢你。让我试试是的,它起作用了,但我还在检查。我正在显示26个字母表。当我尝试将numcolumns作为autofit时,只排列了2列。当我试图指定一个数字(比如7)时,最后一行(项目数=5)给了我一个问题。我试图使它与中心对齐。有什么建议吗?你能在这个问题上帮我吗?我真的不知道,你的意思。看看这个。我尝试了这个示例,但是使用了android:numColumns作为7(如果我不使用它,则每行仅获取2个项目),最后一行只剩下5个元素,这些元素正在向左对齐。你能建议我把最后一行的五个项目与中心对齐吗?我喜欢这个简单的想法。我忘了,如果没有空间,网格布局会对齐。谢谢你。让我试试是的,它起作用了,但我还在检查。我正在显示26个字母表。当我尝试将numcolumns作为autofit时,只排列了2列。当我试图指定一个数字(比如7)时,最后一行(项目数=5)给了我一个问题。我试图使它与中心对齐。有什么建议吗?你能在这个问题上帮我吗?我真的不知道,你的意思。看看这个。我尝试了这个示例,但是使用了android:numColumns作为7(如果我不使用它,则每行仅获取2个项目),最后一行只剩下5个元素,这些元素正在向左对齐。你能建议我把最后一行的五个项目对准中心吗