Pergunta

Estou usando um ListView. Mas a barra horizontal mais elevada e mais baixa não aparece. Por quê? Estou usando isso:

android:divider="@android:drawable/divider_horizontal_bright"
Foi útil?

Solução

Você já olhou para o cenário android:headerDividersEnabled e android:footerDividersEnabled no ListView?

Além disso, se você procurar drawDivider dentro Platform/Frameworks/Base/+/Master/Core/Java/Android/Widger/ListView.java no Repositório de código aberto Android, você poderá encontrar mais algumas pistas.

Outras dicas

Adicione um rodapé dummy e cabeçalho

listViewContato = (ListView) view.findViewById(R.id.listview_contatos);
listViewContato.addHeaderView(new View(getActivity()));
listViewContato.addFooterView(new View(getActivity()));

Veja como eu o implementei ... o divisor de fundo aparece após o definir android:paddingBottom para o ListView. Mas no meu caso depois de definir android:paddingTop Os divisores superior e inferior não estão aparecendo. Eu não sei por quê. Então eu adicionei no meu list_item_layout.xml O seguinte código:

<View
    android:layout_width="match_parent"
    android:layout_height="1dip"
    android:background="?android:attr/listDivider" />

E no meu adaptador, só mudando a visibilidade dessa visão:

View topDivider = v.findViewById(R.id.divider);

if (position == 0) {
    topDivider.setVisibility(View.VISIBLE);
} else {
    topDivider.setVisibility(View.GONE);
}

Espero que isso tenha útil para alguém.

Eu tive o mesmo problema com Libslidemenu.

Como android:headerDividersEnabled Definido como True, não mostrou o divisor de cabeçalho no menu deslizante, eu o resolvi mudando slidemenu.xml (não slidemenu_listitem.xml) para

<LinearLayout ...>

    <LinearLayout ...>
    <ImageView ...>  (this is the header image on top of the menu)

    <View
    android:layout_width="250dip"
    android:layout_height="2dip"
    android:background="@drawable/divider" />

    <ListView ...> (this is the ListView for the MenuItems)
    </LinearLayout>


    <FrameLayout ...>
    </FrameLayout ...>
</LinearLayout>

Isso adicionará o divisor manualmente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top