【问题标题】:What is the best way to make a scrolling gridview which virtualizes items in Android?制作在Android中虚拟化项目的滚动gridview的最佳方法是什么?
【发布时间】:2016-11-15 06:02:23
【问题描述】:

我想使用可以轻松显示 500 个项目的网格视图。就像每行 3 个项目和许多行一样。我不希望 gridview 拥有真正的 500 个项目。例如,如果屏幕一次可以显示 15 个项目,我希望它重用这些项目并将其内容替换为与当前滚动位置对应的项目。 (如 iOS 中的 TableView 或 Windows 8 和 Windows Phone 8 中的虚拟化面板)。

把它想象成一个照片应用程序,它在 3 列中列出照片,您甚至可以滚动 1000 个或 5000 个项目(用户需要自己的时间滚动到那个深度,我只是希望视图能够处理项目独立于其数量)

我该怎么做?

【问题讨论】:

    标签: android gridview android-arrayadapter android-adapter


    【解决方案1】:

    我要告诉你一个好消息!适配器模式正是为此目的而构建的。

    Adapter - Adapter 对象充当 AdapterView 和该视图的基础数据之间的桥梁。适配器 提供对数据项的访问。适配器还负责 为数据集中的每个项目创建一个视图。 See here for more.


    GridView - GridView 是一个 ViewGroup,它在二维、可滚动的网格中显示项目。网格项目是 使用ListAdapter 自动插入到布局中。为 介绍如何使用适配器动态插入视图, 阅读Building Layouts with an Adapter.

    使用这些页面中显示的示例了解如何将 GridView 与适配器一起使用,然后修改适配器的示例代码以从您想要的任何位置加载图片,而不是从 R.drawables

    特别注意 ListAdapter getView() 方法中的部分,特别是传递给 getView()View convertView 参数。如果可能,该参数将是“回收”视图。 (一个完全退出屏幕的。因此使用时间更长)因此,通过重新使用它而不是每次创建 new 视图,您可以滚动浏览数千个项目的列表,同时仍然只使用确切的方式显示一个完整屏幕需要许多 View 对象。

    【讨论】:

      猜你喜欢
      • 2020-09-17
      • 1970-01-01
      • 2023-03-28
      • 2017-04-27
      • 1970-01-01
      • 1970-01-01
      • 2010-11-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多