【问题标题】:Implementing listview with scrollable views and view caching使用可滚动视图和视图缓存实现列表视图
【发布时间】:2015-01-13 08:41:33
【问题描述】:

我正在研究设计一个带有水平滚动视图的ListView - 类似于 facebook 应用程序中的东西。

我还需要为水平滚动视图实现缓存。

我能想到的一些选项是:

  • 水平滚动查看项目。
  • 据我所知,ViewPager 不太适合这项任务。

我该怎么做?

我已经阅读了一些 StackOverflow 问题并且仍在研究,但到目前为止我所阅读的内容都没有实现滚动水平视图的缓存。

【问题讨论】:

    标签: android listview horizontalscrollview


    【解决方案1】:

    只需使用两个嵌套的RecyclerViews。支持数据是二维数组,因为布局是二维的。当调用适配器的onBindViewHolder 时,外部RecyclerView 传递内部RecyclerView 的数据。此外,如果内部视图仅包含单个项目且不需要水平滚动,您还可以分别使用不同的布局或 ViewHolder

    一些关于实现RecyclerViews的参考

    这里:http://www.bignerdranch.com/blog/recyclerview-part-1-fundamentals-for-listview-experts/

    这里:https://developer.android.com/reference/android/support/v7/widget/RecyclerView.html

    这里:https://developer.android.com/training/material/lists-cards.html

    【讨论】:

    • 感谢您的参考资料(我之前已经阅读过所有资料并且熟悉 recycleView),但这并不能完全回答问题。据我所知并且可以从这个文档中看出 - recycleView 支持垂直或水平滚动。我需要定期垂直滚动,每个列表项都水平滚动。
    • 在这种情况下,您可能应该有两个嵌套的RecyclerViews。内部视图将水平滚动,外部视图垂直滚动。我明白,在你的情况下,你的支持数据是一个二维数组,对吧?
    • 我的后备数据大小会有所不同。列表中的一个项目可能只是一个简单的项目,根本不需要水平滚动。另一个项目可能有 10 个水平滚动视图,另一个项目可能只有 3 个。
    • 你认为我应该有一个回收视图,它持有的每个项目都是另一个回收视图?
    • facebook 的应用时间线是我正在寻找的完美示例
    【解决方案2】:

    This 会帮助你。您可以在滚动时使用缓存。例如,如果您使用水平滚动条加载图像,您可以使用 picasso 库来捕获和加载图像。

    【讨论】:

    • 谢谢链子。在我发布这个问题之前,我已经在这里阅读了这个库 - profi.co/android-horizontal-list-view-library-with-item-scroll,这可能是我正在探索的解决方案。您是否知道任何使用此库的应用程序,我可以检查它是否符合我的要求?
    • 您首先阅读了他的博客lucasr.org/2014/07/31/the-new-twowayview。然后决定你能不能做到这一点。您必须对此进行自定义,您无法获得确切的示例或应用程序。您可以实现,而不是搜索。
    【解决方案3】:

    【讨论】:

    • 嗨 yosi 很有帮助,或者您遇到任何问题
    • 您好,这些总是有帮助的,但这里展示的是如何创建一个水平滚动的列表视图。我需要的是水平和垂直滚动
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多