如何在线性布局中动态添加带有其他约束的文本视图



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

--- 4th -------------------- 5th -----等等

我知道我们需要使用具有不同方向参数的嵌套线性布局。但是,我如何解决此问题的"最多3个文本视图"。我知道这必须使用 weight 参数做点事。我到目前为止写的代码是 -

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将有助于避免编写代码来计算和添加每一行和每个视图,并还可以优化布局。

最新更新