安卓中可双向滚动的网格视图

4
在Android中,是否可以让GridView同时垂直和水平滚动?请给予建议。
2个回答

0

我觉得这可能是不可能的。GridView 基于 ArrayAdapter,仅具有项目的 1 维。您如何将它们排列在可以在垂直和水平方向上扩展的视图中?

当然,如果您只想使其大于屏幕并使用硬编码的行/列数,您可以将其放入另一个可滚动的视图中。


是否可以在GridView上使用GestureDetector来检测手势并允许滚动?我注意到有一些游戏可以在网格上进行双向滚动。有任何想法如何实现这一点吗?例如,我在市场上看到了许多扫雷应用程序可以这样做。非常感谢任何帮助。用户应该能够通过在屏幕上滑动手指来沿着他们想要滚动的方向滚动GridView。 - random
我认为那些游戏使用的不是GridView。你可以编写一个自定义UI小部件(扩展自基本View类),绘制2D网格,并以启用2D滚动的方式响应触摸手势。 - Zsombor Erdődy-Nagy

0

以下有两种解决方案,您可以选择适合您需求的一种。

  1. 你可以使用自定义布局管理器来替代GridView,使用RecyclerView。你可以阅读this的代码以获取帮助。此外,你还可以阅读this的文章,了解如何创建自定义布局管理器。这篇文章提供了一个示例,展示如何创建双向滚动网格布局。

  2. 另一种解决方案是在ScrollView中使用水平滚动的Grid Layout包裹RecyclerView。

    <ScrollView>
        <RecyclerView />
    </ScrollView>
    

    使用GridLayoutManager为recycler view实现水平滚动。

第一个解决方案的有效性在于它能够正确处理视图回收。
希望这可以帮助到您。

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