这是一个如何ListView
使用divider和dividerHeight参数在类中执行的示例:
<ListView
android:id="@+id/activity_home_list_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="@android:color/transparent"
android:dividerHeight="8dp"/>
Run Code Online (Sandbox Code Playgroud)
但是,我没有在RecyclerView
课堂上看到这种可能性.
<android.support.v7.widget.RecyclerView
android:id="@+id/activity_home_recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical"/>
Run Code Online (Sandbox Code Playgroud)
在这种情况下,可以直接定义边距和/或将自定义分隔视图添加到列表项的布局中,还是有更好的方法来实现我的目标?
Android文档说:
RecyclerView小部件是ListView的更高级和灵活的版本.此窗口小部件是一个容器,用于显示可以通过维护有限数量的视图而非常有效地滚动的大型数据集.如果数据集合的元素在运行时根据用户操作或网络事件而更改,请使用RecyclerView小部件
ListView
如果效率无关紧要,实际上可以做到以上所有,我们在RecyclerView
用来替换时发现了很多问题ListView
:
列表项选择没有onItemClickListener() - 解决方案
列表项之间没有分隔符 - 解决方案
没有内置重叠选择器,当您单击列表项 - 解决方案时没有可视反馈
列表头没有addHeaderView - 解决方案
也许更多问题......
因此,当我们使用RecyclerView
替换时ListView
,我们必须做更多的额外编码才能达到相同的效果ListView
.
题:
- 是否值得我们更换
ListView
与RecyclerView
完全?- 如果不是那么在这种情况下,我们应该更好地利用
RecyclerView
替代ListView
,反之亦然?
在ListView上,您可以使用快速滚动条,允许您拖动滚动条以轻松滚动到您希望的任何位置(使用fastScrollEnabled属性)
与" SectionIndexer "类和可选的一些属性一起,您可以在使用此滚动条时显示一个很好的弹出窗口(此处链接).
联系人应用程序上会显示这样的内容,以便您可以轻松滚动到特定字母.
RecyclerView似乎没有任何这些.甚至不是快速滚动.
如何为RecyclerView添加快速滚动功能?
android scrollbar fastscroll sectionindexer android-recyclerview