Android 如何在具有附加约束的线性布局中动态添加文本视图?

Android 如何在具有附加约束的线性布局中动态添加文本视图?,android,android-layout,Android,Android Layout,我正在开发一个应用程序,我想在其中按列顺序添加文本视图。Atmost 3文本视图可以水平填充屏幕宽度。如果要添加的文本视图超过3个,则应在下一行添加新的文本视图,依此类推。见下图- ---第一------------------第二-------------第三 ---第四名------------第五名------以此类推 我知道我们需要使用具有不同方向参数的嵌套线性布局。但我如何绕过“每行最多3个文本视图”的限制呢。我知道这与权重参数有关。到目前为止,我编写的代码是- LinearLayou

我正在开发一个应用程序,我想在其中按列顺序添加文本视图。Atmost 3文本视图可以水平填充屏幕宽度。如果要添加的文本视图超过3个,则应在下一行添加新的文本视图,依此类推。见下图-

---第一------------------第二-------------第三

---第四名------------第五名------以此类推

我知道我们需要使用具有不同方向参数的嵌套线性布局。但我如何绕过“每行最多3个文本视图”的限制呢。我知道这与权重参数有关。到目前为止,我编写的代码是-

LinearLayout out = (LinearLayout) findViewById(R.id.linear_params);
TextView mView = new TextView(this);
mView.setText("placeholder");
mView.setLayoutParams(new LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,
                LinearLayout.LayoutParams.WRAP_CONTENT));
out.addView(mView);
还有我写的布局-

<LinearLayout
    android:id="@+id/out
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:layout_margin="5dp">
    
    <LinearLayout
    android:id="@+id/in
    android:layout_width="match_parent"
    android:layout_height="10dp"
    android:layout_gravity="center_horizontal"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:orientation="horizontal">
    <TextView ... />
    </LinearLayout>
    </LinearLayout>


如何修改上述xml和代码,以便能够根据需要动态放置视图?

正确的方法是使用具有三列的GridView组件。它还允许您添加视图

如果使用LinearLayout,则必须使用权重并在每行中不断添加新的LinearLayout,这将需要大量的计算处理和过度拉伸


使用GridView将有助于避免编写代码来计算和添加每一行和每一个视图,并将保持布局优化

使用列数设置为3的gridview。或者,您可以动态计算屏幕大小,分成3个部分(每个文本视图的宽度),并创建要显示的全部文本视图的线性布局除以3。添加3个文本视图,其宽度计算为每个线性布局的子级。