在Android中是否可以使边距折叠?假设我有一个LinearLayout
并添加了三个TextView
,每个TextView
的android:layout_margin
都是10dp
。我会得到以下结果:
- 将第一个项目的顶部边距和最后一个项目的底部边距设置为10dp,
- 将其余的顶部/底部边距设置为5dp,
在Android中是否可以使边距折叠?假设我有一个LinearLayout
并添加了三个TextView
,每个TextView
的android:layout_margin
都是10dp
。我会得到以下结果:
我通常会这样修复这个问题:简单地将视图的边距(即您的TextView)减半,并将相同数量的填充添加到包含ViewGroup(即您的LinearLayout)中。这样,您就可以在所有项目周围获得均匀的间距。例如:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="5dip"
>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dip"
android:text="I'm a TextView!"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dip"
android:text="I'm a TextView!"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dip"
android:text="I'm a TextView!"
/>
</LinearLayout>
示例父容器:
<RecyclerView
----
android:padding_top="10dp"
android:padding_start="10dp"
android:padding_end="10dp"
----
>
</RecyclerView>
填充确保窗口顶部、左侧和右侧的间距。
现在唯一剩下的是两个相邻子项之间的垂直间隙和最后一个子项之后的底部间隙。
示例子项/项目视图:
<RelativeLayout
----
android:margin_bottom="10dp"
----
>
<DynamicChild1 />
<DynamicChild2 />
</RelativeLayout>
对于这个问题,子视图将只是一个带有底部边距的TextView
。
这将为您提供与问题中预期的完全相同的输出。