我正在尝试在我正在创建的应用程序中实现水平列表的 RecyclerView,虽然我找到了几个使用示例,但在所有这些示例中,它们只显示代码而没有详细解释每件事的用途。
我的应用程序中有一个可以正常工作的示例,但它是示例的复制/粘贴,我想学习如何使用它而无需根据需要复制和粘贴。
为了澄清我的疑问,我知道要使用 RecyclerView,您需要使用 LayoutManager、带有 ViewHolder 的适配器和 DataSet 类,该对象类将用于收集将在列表中显示的所有数据,但我不知道它的用途是不使用 LayoutMaganer 也不使用 ViewHolder 也不知道它们如何协同工作。
向我解释 RecyclerView 的工作原理对您很有帮助,如果它很长,我请您留下一个链接作为评论,解释我的疑问。
经过一个周末的思考,我设法横向启动了一个 RecyclerView,简要了解了每个组件的用途。
好吧,我发现这个页面详细解释了每个元素的用途:
https://erikcaffrey.github.io/2015/10/05/recyclerview/
并以 a 为例
RecyclerView
,他们推荐了以下网页:http://www.androidhive.info/2016/01/android-working-with-recycler-view/
这个页面是英文的,但它解释了
RecyclerView
正确创建一个要遵循的所有步骤,并且通过遵循所有步骤,我可以理解每个东西的用途。对于那些不懂英语的人,我保证使用翻译器您会完全理解它。我还不得不说我在 AndroidHive 页面上显示的代码存在一些错误。
事实证明,在
onCreate()
文件方法中,该方法MainActivity.java
是prepareMovieData()
最后调用的,应该在声明 RecyclerView 之后立即调用该方法,即在此行之后:如果我们最后声明这个调用,会出现一个错误,指出我们创建的 Object(在 AndroidHive 的情况下是 Movies 类)为 null,即它没有数据。
另一方面,在方法的末尾
prepareMovieData()
声明了以下行:就我个人而言,这一行会导致应用程序出现故障,导致应用程序关闭,将其从代码中删除对我来说非常有效。真的,我不知道这条线是做什么用的,但如果有人知道原因,我会很感激编辑这个条目来解释它。
最后,我想澄清一下,这篇文章的目的是创建一个水平的,所以我把关于 a水平或垂直显示
RecyclerView
的解释留在下面。RecyclerView
在
onCreate()
file方法MainActivity.java
中,我们将 LayoutManager 添加到 RecyclerView 中,其中包含以下几行:这个 LayoutManager 负责告诉 RecyclerView 我们引入的数据将如何显示,即内容是否会垂直显示、水平显示、以列表的形式显示等。所以如果我们希望我们的列表水平显示,我们只需要通过以下方式编辑前面的行:
如果您想要垂直列表,我们将保持原样。
我希望您觉得它有用,并感谢您的支持。