使用水平滚动使GridLayoutManager VERTICAL方向

时间:2017-12-20 16:18:11

标签: android gridlayoutmanager

我需要具有水平可滚动行为的RecyclerView Gridlayout Manager。它必须添加子视图,就像它具有VERTICAL方向时一样(例如(第1行,第1列)=索引0,(第1行,第2列)=索引1的列式索引等等。)

目前VERTICAL Orientation不允许水平滚动并使用设备宽度拟合子视图。

修改

我在RecyclerView GridLayoutManager中有100行和150列,需要水平滚动视图。我隐藏并显示行,这只能通过VERTICAL Orientation实现。

2 个答案:

答案 0 :(得分:0)

尝试

new GridLayoutManager(getActivity(), 1, GridLayoutManager.HORIZONTAL, false);

这里1计为行数。如果您使用片段,请使用getActvity();如果您在活动中调用它,则使用MainActivity.this

答案 1 :(得分:0)

您可以尝试将Recyclerview放在HorizontalScrollingView内,并禁用Recyclerview的垂直滚动:

您的.xml文件可能如下所示:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <HorizontalScrollView
        android:id="@+id/myHorizontalScrollView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/myRecyclerView"
            android:layout_width="wrap_content"
            android:layout_height="match_parent" />

    </HorizontalScrollView >

</LinearLayout >

在您的代码中,您必须覆盖canScrollVertically中的GridLayoutManager

Java:

GridLayoutManager mLayoutManager = new GridLayoutManager(this, 100) {
    public boolean canScrollVertically() {
        return false;
    }
};

科特琳:

val mLayoutManager = object : GridLayoutManager(this, 100) {
    override fun canScrollVertically() : Boolean {
        return false
    }
}

这100行可能太多,无法一次在屏幕上显示它们。要解决此问题,只需不要停用GridLayoutManager中的垂直滚动。