android android-layout margin collapse

Disminución de márgenes en los diseños de Android.



android-layout margin (1)

Lo que normalmente hago para solucionar esto, es simplemente cortar el margen de la Vista (es decir, su TextView) a la mitad, y agregar ese mismo número como relleno al ViewGroup (es decir, su LinearLayout). De esta manera, terminará con un espaciado uniforme alrededor de todos los elementos. Por ejemplo:

<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>

¿Es posible hacer que los márgenes colapsen en Android? Digamos que tengo un LinearLayout y agrego tres TextView s, cada uno con un android:layout_margin de 10dp . Obtengo el siguiente resultado:

Sin embargo, me gustaría obtener este resultado:

Sé que podría solucionar esto al establecer diferentes márgenes superior / inferior para los diferentes elementos:

  • establezca el margen superior del primer elemento y el margen inferior del último elemento a 10dp,
  • establezca los márgenes superior / inferior a 5dp,

pero eso hace que el diseño sea más complicado (especialmente si las TextViews se crean dinámicamente). ¿Hay alguna manera de hacer que los márgenes se comporten como en CSS? (Para obtener una explicación de por qué esto tiene sentido, consulte: ¿Cuál es el punto de colapso de los márgenes de CSS? )