DividerItemDecoration 未显示 android

DeK*_*kem 6 android android-recyclerview

我有这个简单的回收者视图项目布局。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/details"
android:layout_width="match_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:background="?android:attr/selectableItemBackground"
android:paddingEnd="15dp"
android:paddingStart="15dp"
>

<org.tchouaffe.ftinfosystem.utils.CustomTextView
    android:id="@+id/name"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:gravity="center_vertical"
    android:textColor="@color/primaryTextColor"
    android:textSize="15sp"/>


<org.tchouaffe.ftinfosystem.utils.CustomTextView
    android:id="@+id/level"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_alignParentRight="true"
    android:layout_toRightOf="@id/name"
    android:gravity="center_vertical|right"
    android:textColor="@color/primaryTextColor"
    android:textSize="15sp"/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

以下代码确实设置了回收站视图:

 RecyclerView recyclerView = (RecyclerView) view.findViewById(R.id.recyclerview);
    LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());
    MyAdapter adapter = new MyAdapter(activity, elementList);
    adapter.setHasStableIds(true);
    DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(recyclerView
            .getContext(), DividerItemDecoration.VERTICAL);
    recyclerView.addItemDecoration(dividerItemDecoration);
    recyclerView.setHasFixedSize(false);
    recyclerView.setLayoutManager(layoutManager);
    recyclerView.setAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)

由于未知原因,分隔线没有出现。有任何想法吗?

我正在使用android.support.v7.widget.DividerItemDecoration.

谢谢

S.D*_*.D. 6

您还需要调用setDrawable()DividerDecoration

提供可绘制资源。一个XML形状绘制可以是一个良好的开端。该形状将呈现为回收项视图之间的分隔线。

或者,在声明应用主题时,您可以将android:listDivideritem设置为所需的可绘制对象。

  • 或设置`android:listDivider`,至少它似乎是这样工作的,请参阅[DividerItemDecoration.java#47](https://android.googlesource.com/platform/frameworks/testing/+/android-support-test/ espresso/sample/src/main/java/android/support/test/testapp/DividerItemDecoration.java#47) (6认同)