android - 关于RecyclerViews能力的讨论

标签 android listview android-recyclerview android-adapter

为了显示项目列表,我通常使用 RecyclerView,但我有一个要求可以更轻松地使用垂直 LinearLayout。我不想失去 RecyclerView 良好的资源管理,所以我正在寻找不同的解决方案,希望有人能帮助我。

我想到的是顶部有一些 View 的布局,然后是项目列表,然后是底部的更多 View 。或者包含多个 RecyclerView 的布局。所以你在顶部有一些 View ,一个项目列表,后面是一些更多的 View 和另一个项目列表等。

我的布局可能是这样的:

  • View 1
  • View 2
  • 回收 View
  • View 3
  • 回收 View
  • View 4

通常,RecyclerView 就像一个可滚动的框架,您可以在其中滚动一些内容。这意味着如果你开始滚动,你的整个屏幕会卡在某个位置,你只是在 RecyclerView 中滚动直到结束。然后您可以继续滚动整个屏幕。

我想要的是一个完全膨胀的 RecyclerView,这样您就可以始终滚动整个屏幕,而不仅仅是 RecyclerView,但又不会失去 RecyclerView 的资源管理。

有人知道这个的解决方案吗?

最佳答案

将以下代码添加到您的回收站 View 的自定义适配器

  @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

        if (viewType == ITEM_TYPE_NORMAL) {
            View normalView = LayoutInflater.from(getContext()).inflate(R.layout.my_normal_row, null);
            return new MyNormalViewHolder(normalView); // view holder for normal items
        } else if (viewType == ITEM_TYPE_HEADER) {
            View headerRow = LayoutInflater.from(getContext()).inflate(R.layout.my_header_row, null);
            return new MyHeaderViewHolder(headerRow); // view holder for header items
        }
    }

我的建议是将单个 recyclerview 与自定义适配器一起使用,并使用 diff 布局对每一行 recyclerview 进行膨胀,即......根据您的情况

关于android - 关于RecyclerViews能力的讨论,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39792956/

相关文章:

c++ - 添加新项目时,在 wtl 中滚动 clistviewctrl

android - 在 android 客户端中获取 socket.io 响应,但无法理解如何在回收器适配器中实现响应

Java、Android 字体质量似乎很低

android - Android 中的渐变

java - 为什么 Android 在套接字末尾发送奇怪的符号? (�)

c# - 如何将文件夹文件加载到 ListView 中?

android - DrawerLayout 不是滑动抽屉

xaml - Windows8 ListView 和项目之间的空间

android - 如何动态更改Modal Bottomsheet android中的内容

java - 单击一个后禁用回收器 View 中的所有其他切换按钮