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

我注意到,新的RecyclerView类,尽pipe它使事情更清洁一点,缺乏我熟悉的许多function:

  1. 分隔线,但这可以通过看这个post这个问题来解决
  2. “footerDividersEnabled”
  3. “headerDividersEnabled”
  4. “listSelector”,但也许我应该简单地设置每个视图?
  5. “fastScrollEnabled”
  6. “smoothScrollbar”
  7. “textFilterEnabled”
  8. 我还试图找出是否有一种新的方法来使用新的类进行过滤(通过实现Filterable与ListView完成)。 我找不到是否有这样的事情
  9. “tools:listitem”,以显示UIdevise器上的项目。

这些是我用的,但也许还有其他的我错过了。

是否有任何教程或一些指导如何取代这些东西?

好吧,我想我已经find了一些解决scheme,我写了什么:

  1. 分隔线 – 我给出的链接可能可以帮助( 在这里这里这里 )。
  2. “footerDividersEnabled” – 可能就像#1一样,但是即使你没有,也可以在页脚布局中添加一个divider。
  3. “headerDividersEnabled” – 与#2相同。
  4. “listSelector” – 应该完成项目视图。
  5. “fastScrollEnabled” – 没有解决scheme可用于此,除了我find的这个库 ,这是我的post在这里的答案。
  6. “smoothScrollbar” – 应该是#5的function请求。 我认为这已经很顺利,但我不确定。
  7. “textFilterEnabled” – 不幸的是,你需要自己处理。 创build一个大小为1的线程池,或者pipe理自己的线程(或者在工作相对较短的情况下使用AsyncTask),并让它为您进行过滤。
  8. 可过滤 – 与#7相同
  9. “工具:listitem” – 不可用,但我想你可以从RecyclerView扩展并添加它。 但是,您将不得不做一些工作,因为RecyclerView不知道如何布置视图。

没有我知道的教程,但ListView的来源是公开的! 没有比这更好的学习方式了…例如:我最近实现了像ListView那样的过滤,它像一个魅力一样工作。 另外,如果你做得好,你只需要做一次,并可以重新应用到处!

我build议你去看一些RecyclerView的库。 你可以在https://android-arsenal.com/find很多图书馆。;

您也可以在RecyclerView和RecyclerView的适配器中实现自己的function。 只需扩展RecyclerView并在此基础上构build即可。

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