如何在 Android 中禁用 GridView 滚动?

Posted

技术标签:

【中文标题】如何在 Android 中禁用 GridView 滚动?【英文标题】:How to disable GridView scrolling in Android? 【发布时间】:2011-06-18 16:20:30 【问题描述】:

我将 GridView 用于游戏板。最近一些用户遇到了垂直滚动板的问题(在运行 2.2 的三星 Galaxy / Vibrant 手机上)——这个错误在我的 Nexus One 上没有出现。

一位用户提出了一些screenshots 的问题。

如何将 GridView 锁定到位?有没有办法禁用滚动?

【问题讨论】:

【参考方案1】:

尝试为GridView添加或覆盖setOnTouchListener, 然后在onTouch 方法中,您可以使用这样的代码 使gridView 不可滚动

Java

gridView.setOnTouchListener(new OnTouchListener() 

    @Override
    public boolean onTouch(View v, MotionEvent event) 
        return event.getAction() == MotionEvent.ACTION_MOVE;
    

);

科特林

gridView.setOnTouchListener  v, event ->
    event.action == MotionEvent.ACTION_MOVE

【讨论】:

这是一个正确的解决方案,应该被接受。 它也停止了对 GridView 的 onItemClick 触发。如何预防? 如果需要,重新启用 GridView 滚动的代码是什么?【参考方案2】:

您可以尝试 setEnabled(false),尽管它可能有其他副作用。 GridView 并不是真的要以您使用它的方式使用。您应该创建自己的自定义视图或布局。您也可以使用 TableLayout。

【讨论】:

是的,我意识到它应该是一个自定义视图。替换当前的 GridView 将涉及更多(早期设计错误)。希望有一个快速修复:) setEnabled() 方法禁用所有功能。谢谢罗曼 Romain Guy 不希望您在不滚动的情况下使用 GridView。我使用这个***.com/a/4536955/671543 技巧。 对于未来的读者,我发现了一个 TableLayout 示例:***.com/a/8639461/3844201

以上是关于如何在 Android 中禁用 GridView 滚动?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Yii2 GridView 中启用和禁用排序?

当我在gridview中过滤行没有找到记录时如何禁用导出按钮

在Yii2 gridview中禁用分页

Eclipse ADT ListView 和 GridView 渲染被禁用

android listView嵌套gridview的使用心得

android listView嵌套gridview的使用心得