DividerItemDecoration doesn't show up in RecyclerView

人盡茶涼 提交于 2019-12-24 03:27:50

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!