我正在进行动态布局,并在线性布局中添加组件。组件数量也是动态的。
当线性布局方向为水平时,项目将水平添加,垂直项目垂直添加。
现在我可以先将物品平铺,然后垂直放置,就像物品垂直填充一样。
或者我可以使用任何其他布局来满足我的需要。
喜欢这个
答案 0 :(得分:1)
您绝对可以拥有多个方向的嵌套LinearLayout
元素。例如:
<LinearLayout
android:id="@+id/main_layout"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/firstRow"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:orientation="horizontal" >
...
</LinearLayout>
<LinearLayout
android:id="@+id/secondRow"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:orientation="horizontal" >
...
</LinearLayout>
<LinearLayout
android:id="@+id/thirdRow"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:orientation="horizontal" >
...
</LinearLayout>
</LinearLayout>
使用这样的结构可以构建您描述的布局。
对于动态行,您可以执行以下操作:
<强> layout_row.xml 强>
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:orientation="horizontal" />
<强> MainActivity.java 强>
mainLayout = (LinearLayout) findViewById(R.id.main_layout);
// for each dynamic row you can inflate a new view and add it
dynamicRow1 = getLayoutInflater.inflate(R.layout.layout_row, null);
mainLayout.addView(dynamicRow1);
dynamicRow2 = getLayoutInflater.inflate(R.layout.layout_row, null);
mainLayout.addView(dynamicRow2);
dynamicRow3 = getLayoutInflater.inflate(R.layout.layout_row, null);
mainLayout.addView(dynamicRow3);
在每一行中,您都可以使用相同类型的逻辑以编程方式添加需要创建的动态视图。