Estoy tratando de agregar un divisor a un diseño lineal horizontal pero no llego a ninguna parte. El divisor simplemente no se muestra. Soy un novato total con Android.
Este es mi XML de diseño:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/llTopBar"
android:orientation="horizontal"
android:divider="#00ff00"
android:dividerPadding="22dip"
android:showDividers="middle"
>
<Button
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="asdf" />
<Button
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="asdf"
/>
</LinearLayout>
</RelativeLayout>
android
android-layout
android-linearlayout
divider
Ahmed-Anas
fuente
fuente
Respuestas:
use esto para divisor horizontal
y esto para divisor vertical
O si puede usar el divisor LinearLayout, para divisor horizontal
y en LinearLayout
Si desea usar un divisor vertical, entonces en lugar de
android:height="1dp"
usarlo en formaandroid:width="1dp"
Consejo: no olvide el
android:showDividers
artículo.fuente
layout_width
ylayout_height
: porque horizontallayout_width
debería ser"fill_parent"
ylayout_height
debería ser"1dp"
. Debería cambiarse de manera similar por el divisor vertical.Pruebe esto, cree un divisor en la
res/drawable
carpeta:vertical_divider_1.xml
Y use el
divider
atributo en LinearLayout así:Nota:
android:divider
solo está disponible en Android 3.0 (API nivel 11) o superior.fuente
Es fácil agregar divisores al diseño, no necesitamos una vista separada.
El código anterior crea un divisor vertical para
LinearLayout
fuente
Actualización: pre-Honeycomb usando AppCompat
Si está utilizando la biblioteca AppCompat v7, es posible que desee utilizar la
LinearLayoutCompat
vista. Con este enfoque, puede usar divisores dibujables en Android 2.1, 2.2 y 2.3.Código de ejemplo:
drawable / divider.xml: (divisor con algo de relleno en la parte superior e inferior)
Nota muy importante: La
LinearLayoutCompat
vista no se extiendeLinearLayout
y por lo tanto no debe usar las propiedadesandroid:showDividers
oandroid:divider
sino las personalizadas:app:showDividers
yapp:divider
. En el código, también debe usarLinearLayoutCompat.LayoutParams
not theLinearLayout.LayoutParams
!fuente
Hoy me encontré con el mismo problema. Como indican las respuestas anteriores, el problema surge del uso de un color en la etiqueta divisoria, en lugar de un dibujo. Sin embargo, en lugar de escribir mi propio xml dibujable, prefiero usar atributos temáticos tanto como sea posible. Puede usar android: attr / dividerHorizontal y android: attr / dividerVertical para obtener un elemento de dibujo predefinido en su lugar:
Los atributos están disponibles en API 11 y superior.
Además, como lo menciona bocekm en su respuesta, la propiedad dividerPadding NO agrega relleno adicional a ambos lados de un divisor vertical, como se podría suponer. En su lugar, define el relleno superior e inferior y, por lo tanto, puede truncar el divisor si es demasiado grande.
fuente
Puede usar el divisor incorporado, esto funcionará para ambas orientaciones.
fuente
Es frustrante que tenga que habilitar la visualización de los separadores del código en su actividad. Por ejemplo:
fuente
Es posible que su divisor no se muestre debido a un divisorPadding demasiado grande. Establece 22dip, eso significa que el divisor se trunca en 22dip desde arriba y 22dip desde abajo. Si la altura de su diseño es menor o igual a 44 dip, no se verá ningún divisor.
fuente
Si la respuesta de Kapil Vats no funciona, intente algo como esto:
drawable / divider_horizontal_green_22.xml
layout / your_layout.xml
Encontré un problema en el que el atributo de relleno no funcionaba, por lo que tuve que establecer la altura del divisor directamente en el divisor.
Nota:
Si desea usarlo en LinearLayout vertical, cree uno nuevo, como este: drawable / divider_vertical_green_22.xml
fuente
Para poder dibujar, el divisor de
LinearLayout
debe tener cierta altura, mientrasColorDrawable
que (que es esencialmente#00ff00
tan bueno como cualquier otro color codificado) no tiene. Una forma simple (y correcta) de resolver esto es envolver su color en algunosDrawable
con una altura predefinida, comoshape
dibujablefuente
Debe crear cualquier vista para separadores como vista de texto o vista de imagen y luego establecer el fondo para eso, si tiene una imagen, use el color como fondo.
Espero que esto te ayude.
fuente