开发者

Top-most and Bottom-most Horizontal Divider does not show up in ListView

I am using a ListView. But the top-most and开发者_C百科 bottom-most horizontal bar does not show up. Why? I am using this:

android:divider="@android:drawable/divider_horizontal_bright"


Add a dummy footer and header

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


Here's how I implemented it... Bottom divider shows up after setting android:paddingBottom for the ListView. BUT in my case after setting android:paddingTop top and bottom dividers are not showing. I don't know why. So I added in my list_item_layout.xml the following code:

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

and in my adapter I just changing the visibility of this view:

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

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

Hope this will helpfull to someone.


Have you looked into setting android:headerDividersEnabled and android:footerDividersEnabled on the ListView?

Also, if you look for drawDivider in platform/frameworks/base/+/master/core/java/android/widger/ListView.java in the Android open source repository, you'll be able to find some more clues.


I had the same problem with LibSlideMenu.

As android:headerDividersEnabled set to true did not show the header divider in the Sliding Menu, I solved it by changing slidemenu.xml (not slidemenu_listitem.xml) to

<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>

This will add the divider manually.


First you'll have to enable the footerDividers in XML:

android:footerDividersEnabled="true"

Then simply add a dummy footer view like this

listview.addFooterView(new View(this), null, false);

You can do the same for header

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜