您可以在一个单独的 xml 文件中定义您的单个项目“原型”,然后在代码中动态地扩充该文件中的项目并将它们插入到您的线性布局中。
然后,您将在实际项目上定义间距,而不是在父 LinearLayout 上定义间距(android:layout_marginTop
例如),并且当您膨胀它们时,该间距将应用于您的所有项目。
编辑:
容器.xml:
<LinearLayout
android:id="@+id/parent"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- Your items will be added here -->
</LinearLayout>
项目.xml:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="This is my child" />
</LinearLayout>
我的活动.java:
// Put this in a suitable place in your Java code, perhaps
// in "onCreate" or "onResume" depending on where and how
// you initialize your view. You can, of course inflate
// any number of instances of the item and add them to
// your parent LinearLayout.
LayoutInflater inflater = LayoutInflater.from(context);
View item = inflater.inflate(R.layout.item, null, false);
LinearLayout container = findViewById(R.id.parent);
container.addView(view);
我没有努力测试代码,但它“应该”按原样工作:-)