Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何实现回收器视图_Android_Android Recyclerview - Fatal编程技术网

Android 如何实现回收器视图

Android 如何实现回收器视图,android,android-recyclerview,Android,Android Recyclerview,我知道实现RecyclerViews的三种方法 第一种方法是将ViewHolder类和Adapter类作为活动或片段中的内部类。在这种方法中,对于包含RecyclerView的每个活动,我们都包含这些内部类 第二种方法是将ViewHolder类和Adapter类作为单独的文件,并在必要时实例化它们 第三种方法是创建一个通用适配器和ViewHolder,并传入适当的对象。然后根据传入对象的类型,处理其他内容,如视图、它们的侦听器、数据等 问题1: 有没有其他方法来实现RecyclerView

我知道实现RecyclerViews的三种方法

  • 第一种方法是将ViewHolder类和Adapter类作为活动或片段中的内部类。在这种方法中,对于包含RecyclerView的每个活动,我们都包含这些内部类

  • 第二种方法是将ViewHolder类和Adapter类作为单独的文件,并在必要时实例化它们

  • 第三种方法是创建一个通用适配器和ViewHolder,并传入适当的对象。然后根据传入对象的类型,处理其他内容,如视图、它们的侦听器、数据等

  • 问题1:

    有没有其他方法来实现RecyclerView?(出于好奇)

    问题2:

    以下哪种方法是最佳实践? (例如,可读性更强、更易于维护或开发、性能更好)

    每种方法的优缺点是什么

    问题#3:

    假设您正在从事一个项目,您必须在4个不同的活动中实现RecyclerViews。都是垂直的,都是相同的布局,但不同的数据模型,不同的onClick方法。 在这种情况下,哪种方法最合适?

    1: 或多或少,这就是实现RecyclerView的方法。 您需要一个适配器和一个视图保持器。 这取决于你构造代码的方式,但在我看来 最好的方法是为适配器提供一个单独的类,然后 如果有多个视图持有者,他们也应该在不同的类中。 如果它只是一个视图保持器,那么它可以作为适配器中的一个内部类

    2: 我认为第一个答案也回答了这个问题

    3: 不管你使用了多少个RecyclerViews。适配器已连接到 它们中的每一个,以及需要实现的逻辑和列表中的单元格视图
    将告诉您是否需要使用一个或多个适配器。

    我通常使用第二种方法,因为大多数情况下视图都非常不同。根据用例的不同,您将有不同的UI元素、交互等。因此,除非您有许多相同的RecyclerViews(例如,每个项目都是标题和图片),并且具有相同的交互,否则很难创建通用的RecyclerViews
    与此相关的还有您使用的适配器类型,例如

    • (对于静态数据非常有效,但如果您自己处理列表,则会出现一些问题,请参见此处)
    • 如前所述-可以简单得多,但您必须手动控制一切

    是的,我理解。我同意你的观点,谢谢你的阐述