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:showDividersartículo.fuente
layout_widthylayout_height: porque horizontallayout_widthdebería ser"fill_parent"ylayout_heightdebería ser"1dp". Debería cambiarse de manera similar por el divisor vertical.Pruebe esto, cree un divisor en la
res/drawablecarpeta:vertical_divider_1.xml
Y use el
divideratributo en LinearLayout así:Nota:
android:dividersolo 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
LinearLayoutfuente
Actualización: pre-Honeycomb usando AppCompat
Si está utilizando la biblioteca AppCompat v7, es posible que desee utilizar la
LinearLayoutCompatvista. 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
LinearLayoutCompatvista no se extiendeLinearLayouty por lo tanto no debe usar las propiedadesandroid:showDividersoandroid:dividersino las personalizadas:app:showDividersyapp:divider. En el código, también debe usarLinearLayoutCompat.LayoutParamsnot 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
LinearLayoutdebe tener cierta altura, mientrasColorDrawableque (que es esencialmente#00ff00tan bueno como cualquier otro color codificado) no tiene. Una forma simple (y correcta) de resolver esto es envolver su color en algunosDrawablecon una altura predefinida, comoshapedibujablefuente
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