如何用RecyclerView完全替换listView / GridView?

时间:2014-10-19 22:33:26

标签: android android-listview android-gridview android-recyclerview

我注意到新的RecyclerView类虽然让事情变得更清晰,却缺乏我熟悉的许多功能:

  1. 分隔符,但可以通过查看this postthis one
  2. 来解决
  3. “footerDividersEnabled”
  4. “headerDividersEnabled”
  5. “listSelector”,但也许我应该根据视图设置它?
  6. “fastScrollEnabled”
  7. “smoothScrollbar”
  8. “textFilterEnabled”
  9. 我还试图找出是否有新的方法来使用带有过滤的新类(通过实现Filterable与ListView一起使用)。我无法确定是否有这样的事情
  10. “tools:listitem”,用于显示UI设计器上的项目。
  11. 这些是我使用的,但也许还有其他我错过了。

    是否有任何教程或指导如何更换这些内容?

3 个答案:

答案 0 :(得分:9)

好吧,我想我已经找到了一些我写的解决方案:

  1. 分隔符 - 我给出的链接可能有用(hereherehere)。
  2. “footerDividersEnabled” - 可能就像#1,但即使你没有它,也可以随时在页脚的布局中添加一个分隔符。
  3. “headerDividersEnabled” - 与#2相同。
  4. “listSelector” - 应该对项目视图进行。
  5. “fastScrollEnabled” - 没有可用的解决方案,除了this library我找到了,这是我的帖子here的答案。
  6. “smoothScrollbar” - 应该是#5的功能请求。我认为它已经很顺利,但我不确定。
  7. “textFilterEnabled” - 遗憾的是,你需要自己处理它。创建一个大小为1的线程池,或者管理你自己的线程(或者使用AsyncTask,以防工作相对较短),并让它为你做过滤。
  8. 可过滤 - 与#7相同
  9. “tools:listitem” - 不可用,但我认为您可以从RecyclerView扩展并添加它。但是,您必须完成一些工作,因为RecyclerView不知道如何布局视图。

答案 1 :(得分:0)

我不知道的教程,但the sources for ListView是公开的!没有比这更好的学习方法...例如:我最近实现了像ListView一样的过滤,它就像一个魅力。另外,如果你做得好,你只需要做一次就可以在任何地方重新应用它!

答案 2 :(得分:0)

我建议你去看一下RecyclerView的一些库。您可以在https://android-arsenal.com/找到很多图书馆。

您还可以在RecyclerView和RecyclerView的适配器中实现自己的功能。只需扩展RecyclerView并在此基础上进行构建。

我建议您在https://android.googlesource.com/platform/frameworks/support/+/refs/heads/master/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java阅读RecyclerView的源代码。