Margen ignorado por LinearLayout
Estoy creando dinámicamente las vistas que contienen un LinearLayout
y las agrego a un LinearLayout
externo. Me gustaría establecer un margen alrededor de las vistas creadas, pero el layout_margin
en el archivo XML es ignorado. Funciona, si establezco los parámetros en el código, pero me gustaría especificar el margen en la disposición XML.
La configuración del margen en el diseño XML se ignorará:
- Centrar un LinearLayout y márgenes "porcentuales"
- Diferencia entre el relleno y el margen de una vista
- Establecer márgenes en un LinearLayout programáticamente
- Android padding problema
- Cómo agregar margen a un botón en tiempo de ejecución?
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="20dp" android:orientation="vertical" > ... </LinearLayout>
Establecer el margen durante la creación se cumple:
LinearLayout productView = (LinearLayout) getLayoutInflater().inflate(R.layout.product_preview, null); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); params.setMargins(50, 50, 50, 50); productView.setLayoutParams(params);
Este es el diseño exterior. Las vistas se agregan a dealer_activity_product_list
.
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <ImageView android:id="@+id/dealer_activity_dealer_image" android:layout_width="match_parent" android:layout_height="150dp" android:contentDescription="@string/dealer_activity_dealer_image_desc" /> <TextView android:id="@+id/dealer_activity_dealer_address" android:layout_width="match_parent" android:layout_height="wrap_content" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <LinearLayout android:id="@+id/dealer_activity_product_list1" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:orientation="vertical" /> <LinearLayout android:id="@+id/dealer_activity_product_list2" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:orientation="vertical" /> </LinearLayout> </LinearLayout>
- ¿Es una mala práctica utilizar márgenes negativos en Android?
- Disposición de Android indeseada de relleno
- Cómo eliminar el margen superior de TextView?
- Margen en TextView personalizado
- ¿Por qué el margen anula marginLeft en Android (mismo con radio, etc)?
- Android: ¿Cómo ajustar el margen / relleno en la preferencia?
- Setmargin no funciona en el diseño relativo en android
- Androide. El ajuste del margen izquierdo / derecho no funciona
¿Está configurando el atributo para el LinearLayout interno o el LinearLayout que contiene ? Al menos, lo siguiente funciona dentro de un LinearLayout:
<TextView android:id="@+id/xxx" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20sp" android:layout_margin="10dp" />
Hay un patrón común de "diseños anidados". Es decir, se crea un diseño de contenedor auxiliar y se consigue el efecto deseado que posiciona el diseño interno dentro del diseño del contenedor.
Tipo de:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <LinearLayout ... android:layout_margin="20dp" > ... </LinearLayout> </LinearLayout>
Set padding
lugar de layout_margin
en vista exterior.
Espero que funcione
- Señal Fatal 6 Código SIGABRT = -6
- Cómo deshabilitar completamente el teclado virtual para todas las entradas en la vista web de Android