我有一个动态布局,并在线性布局中添加组件。组件的数量也是动态的。
当线性布局方向为水平时,项目将水平添加,而垂直项目则垂直添加。
现在我可以先水平平铺项目,然后垂直平铺项目,就像垂直填充项目一样。
或者我可以使用任何其他布局来满足我的需要。
像这样
我有一个动态布局,并在线性布局中添加组件。组件的数量也是动态的。
当线性布局方向为水平时,项目将水平添加,而垂直项目则垂直添加。
现在我可以先水平平铺项目,然后垂直平铺项目,就像垂直填充项目一样。
或者我可以使用任何其他布局来满足我的需要。
像这样
您绝对可以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>
使用这样的结构将允许您构建您描述的布局。
对于动态行,您可以执行以下操作:
布局行.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);
在每一行中,您可以使用相同类型的逻辑以编程方式添加需要创建的动态视图。