我正在开发一个应用程序,我想在列中按顺序添加textview。最多3个文本视图可以水平填充屏幕宽度。如果要添加的文本视图超过3个,则应在下一行添加新文本视图,依此类推。见下图 -
---第一---------------第二--------------第三
--- 4th ---------------- 5th -----等等
我知道我们需要使用具有不同方向参数的嵌套线性布局。但是,我如何解决这个“每行最多3个textviews约束”。我知道这必须使用 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和代码,以便我能够根据需要动态放置视图?
答案 0 :(得分:0)
执行此操作的正确方法是使用具有三列的GridView组件。它还允许您添加视图。
如果使用LinearLayout,则必须使用权重并继续每行添加新的LinearLayout,这将需要大量的计算和透支处理。
使用GridView将有助于避免编写代码来计算和添加每一行和每个视图,并且还将保持布局优化。