问题
I found that DividerItemDecoration work fine with simple, one line list items, but with more complex one it refuses to show up. Here's the XML of list item:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:orientation="horizontal"
xmlns:android="http://schemas.android.com/apk/res/android" >
<ImageView
android:layout_width="60dp"
android:layout_height="60dp"
android:id="@+id/imageView"
android:transitionName="obrazek"
android:layout_marginRight="5dp" />
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:background="?android:attr/selectableItemBackground">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Medium Text"
android:id="@+id/nazwa"
android:maxLines="1" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Medium Text"
android:id="@+id/odleglosc"
android:layout_gravity="right"
android:gravity="end"
android:layout_below="@+id/nazwa"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:clickable="false" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text=" "
android:id="@+id/cena"
android:layout_below="@+id/nazwa"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<!--
<RatingBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/ratingBar"
android:layout_below="@+id/nazwa"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
style="@style/beerRatingBar" />
-->
</RelativeLayout>
</LinearLayout>
I'm using most common decorator for RecyclerView. Just don't know why it don't want to draw.
recyclerView.addItemDecoration(new DividerItemDecoration(
getApplicationContext(), DividerItemDecoration.VERTICAL_LIST));
回答1:
A had a similar problem but in my case it was using a RelativeLayout as the root layout of my item. Changed it to LinearLayout and it worked.
My suggestion is to simplify your item xml until you can see the divider.
回答2:
Your RecyclerView
's orientation is android:orientation="horizontal"
, but you use DividerItemDecoration.VERTICAL_LIST
. This is wrong. You should use DividerItemDecoration.HORIZONTAL
. This is counter-intuitive :-)
来源:https://stackoverflow.com/questions/32542639/divideritemdecoration-doesnt-show-up-in-recyclerview