垂直网格视图水平滚动

4

我最终成功地将Android支持库中的VerticalGridView添加到我的项目中。

现在的问题是该网格既可以水平滚动,也可以垂直滚动!

以下是我的源代码:

<android.support.v17.leanback.widget.VerticalGridView
            android:id="@+id/my_recycler_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:scrollbars="vertical" />

以及Java代码:

mRecyclerView = (VerticalGridView) rootView.findViewById(R.id.my_recycler_view);
mRecyclerView.setHasFixedSize(true);
mRecyclerView.setNumColumns(4);
mRecyclerView.setVerticalMargin(24);
3个回答

1
我已经找到了解决方法。您只需要将android.support.v7.widget.GridLayoutManager设置为VerticalGridView的布局管理器,如下所示(请注意,在构造函数中传递列数):
mRecyclerView = (VerticalGridView) rootView.findViewById(R.id.my_recycler_view);
mRecyclerView.setLayoutManager(new GridLayoutManager(context, 4));
mRecyclerView.setHasFixedSize(true);
mRecyclerView.setVerticalMargin(24);

我也遇到了同样的问题,但不幸的是,leanback库有一个空构造函数,没有像support库中那样的构造函数,可以通过setNumColumns(spanCount)方法传递列数。 - kirkadev
这将导致焦点列表项不会居中显示在屏幕上。 - Shaco

0
无论您选择哪一个,您都可以使用此列表并在两个方向上滚动,感觉就像它可以在屏幕上四处移动。必须有一种方法来禁用单向滚动。
有没有办法解决这个问题?

如果您有新的问题,请通过单击提问按钮来提出。如果它有助于提供上下文,请包含此问题的链接。- 来自审核 - Vojin Purić

-1
在Leanback库中有两个类,分别是1. VerticalGridView 2. HorizontalGridView。您可以使用HorizontalGridView来进行水平滚动。

无论您选择哪一种,您都可以使用此列表并在两个方向上滚动,感觉就像它可以在屏幕上四处移动。必须有一种方法可以禁用单向滚动。 - kirkadev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接