gpt4 book ai didi

android - 与 Flipboard 应用程序布局相同的两个回收器 View

转载 作者:太空狗 更新时间:2023-10-29 16:34:29 25 4
gpt4 key购买 nike

我想在另一个 RecyclerView(类似网格)下面使用一个 RecyclerView(类似列表),就像在 flipboard 中一样

enter image description here

我在 ScrollView 中尝试了两个 RecyclerView 并且没有显示任何内容。

如果将其放置在线性布局中并为其添加相同的权重,我可以看到两个 View 。但这看起来不像这个应用程序 View 。

这是我的布局

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
android:orientation="vertical">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<android.support.v7.widget.RecyclerView
android:id="@+id/parent_category_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minWidth="@dimen/default_small_padding"
android:gravity="center"
android:visibility="visible"/>

<android.support.v7.widget.RecyclerView
android:id="@+id/category_grid"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:columnWidth="150dp"
android:gravity="center"
android:visibility="visible"/>

</LinearLayout>

最佳答案

实际上有一种非常简单的方法可以只用一个 RecyclerView 实现所需的布局!

关键是使用 GridLayoutManager 及其 SpanSizeLookup。首先像这样定义你的 GridLayoutManager:

GridLayoutManager layoutManager = new GridLayoutManager(context, spanCount);

其中 spanCount 是您希望拥有的跨度/列的最大数量。在您的情况下,spanCount 应该是 2

现在您需要一种方法来告诉这个 layoutManager 一个项目应该跨越多少个跨度。一种简单的方法是对应该只跨越一列的项目使用 viewtype/ViewHolder,对跨越整个宽度的项目使用另一个。

假设您将网格项的 View 类型定义为 VIEWTYPE_GRID_ITEM,将标准列表项的 View 类型定义为 VIEWTYPE_LIST_ITEM。然后,您可以使用这些 View 类型来告诉布局管理器何时只使用一个跨度:

layoutManager.setSpanSizeLookup(new SpanSizeLookup() {
@Override
public int getSpanSize(int position){
return adapter.getItemViewType(position) == VIEWTYPE_GRID_ITEM ? 1 : spanCount;
}
});

最后,将 layoutManager 设置为您的 RecyclerView:

recyclerView.setLayoutManager(layoutManager);

就是这样!

关于android - 与 Flipboard 应用程序布局相同的两个回收器 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32268945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com