Estou tentando adicionar uma divisória a um layout linear horizontal, mas não estou chegando a lugar nenhum. O divisor simplesmente não aparece. Eu sou um novato total no Android.
Este é o meu layout XML:
<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
fonte
fonte
Respostas:
use isso para divisor horizontal
e isso para divisor vertical
OU se você pode usar o divisor LinearLayout, para divisor horizontal
e em LinearLayout
Se você quiser usar o divisor vertical, em vez de
android:height="1dp"
usar a formaandroid:width="1dp"
Dica: não se esqueça do
android:showDividers
item.fonte
layout_width
elayout_height
: pois horizontallayout_width
deveria ser"fill_parent"
elayout_height
deveria ser"1dp"
. Deve ser trocado da mesma forma para o divisor vertical.Experimente isso, crie um divisor na
res/drawable
pasta:vertical_divider_1.xml
E use o
divider
atributo em LinearLayout assim:Nota:
android:divider
só está disponível no Android 3.0 (API de nível 11) ou superior.fonte
É fácil adicionar divisória ao layout, não precisamos de uma visualização separada.
O código acima faz divisor vertical para
LinearLayout
fonte
Atualização: pré-Honeycomb usando AppCompat
Se você estiver usando a biblioteca AppCompat v7, talvez queira usar a
LinearLayoutCompat
visualização. Usando essa abordagem, você pode usar divisores drawable no Android 2.1, 2.2 e 2.3.Código de exemplo:
drawable / divider.xml: (divisor com algum preenchimento na parte superior e inferior)
Nota muito importante: A
LinearLayoutCompat
visualização não se estendeLinearLayout
e, portanto, você não deve usar as propriedadesandroid:showDividers
ouandroid:divider
, mas as personalizadas:app:showDividers
eapp:divider
. No código, você também deve usar o,LinearLayoutCompat.LayoutParams
não oLinearLayout.LayoutParams
!fonte
Acabei de ter o mesmo problema hoje. Como as respostas anteriores indicam, o problema decorre do uso de uma cor na tag divisória, ao invés de um drawable. No entanto, em vez de escrever meu próprio xml drawable, prefiro usar atributos temáticos tanto quanto possível. Você pode usar android: attr / dividerHorizontal e android: attr / dividerVertical para obter um drawable predefinido:
Os atributos estão disponíveis na API 11 e superior.
Além disso, conforme mencionado por bocekm em sua resposta, a propriedade dividerPadding NÃO adiciona preenchimento extra em ambos os lados de uma divisória vertical, como se poderia supor. Em vez disso, ele define o preenchimento superior e inferior e, portanto, pode truncar o divisor se for muito grande.
fonte
Você pode usar o divisor embutido, isso funcionará para ambas as orientações.
fonte
Frustrantemente, você precisa habilitar a exibição dos divisores do código em sua atividade. Por exemplo:
fonte
Seu divisor pode não estar aparecendo devido a um padding divisor muito grande. Você define 22dip, o que significa que o divisor é truncado por 22dip da parte superior e por 22dip da parte inferior. Se a altura de seu layout for menor ou igual a 44dip, nenhum divisor estará visível.
fonte
Se a resposta do Kapil Vats não estiver funcionando, tente algo assim:
drawable / divider_horizontal_green_22.xml
layout / your_layout.xml
Encontrei um problema em que o atributo de preenchimento não estava funcionando, portanto, tive que definir a altura do divisor diretamente no divisor.
Nota:
Se você quiser usá-lo em LinearLayout vertical, faça um novo, como este: drawable / divider_vertical_green_22.xml
fonte
Para ser desenhado, o divisor de
LinearLayout
deve ter alguma altura enquantoColorDrawable
(que é essencialmente#00ff00
tão boa quanto qualquer outra cor codificada) não tem. Uma maneira simples (e correta) de resolver isso é envolver sua cor em algumaDrawable
com altura predefinida, comoshape
drawablefonte
Você tem que criar qualquer visualização para separadores como visualização de texto ou visualização de imagem e então definir o fundo para isso, se você tiver uma imagem, use a cor como fundo.
Espero que isso ajude você.
fonte