折叠Android布局中的边距

时间:2012-07-31 07:44:10

标签: android android-layout margin collapse

Android中的边距是否有可能崩溃?假设我有LinearLayout并添加了三个TextView,每个android:layout_margin 10dp。我得到以下结果:

actual result

但是,我想得到这个结果:

expected result

我知道我可以通过为不同的项目设置不同的上/下边距来解决这个问题:

  • 将第一项的上边距和最后一项的下边距设置为10dp,
  • 将剩余的上/下边距设置为5dp,

但这会使设计更复杂(特别是如果动态创建TextView)。有没有办法让边距在CSS中表现得像? (有关为什么这有意义的解释,请参阅:What is the point of CSS collapsing margins?

1 个答案:

答案 0 :(得分:15)

我自己通常做的就是简单地将View的(即你的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>