如何在Android中禁用GridView滚动?

How to disable GridView scrolling in Android?

我正在为游戏板使用GridView。最近,一些用户在板上垂直滚动时遇到了问题(在运行2.2的Samsung Galaxy / Vibrant手机上)-在我的Nexus One上没有发生此错误。

一个用户制作了该问题的一些屏幕截图。

如何将GridView锁定在适当的位置?有禁用滚动的方法吗?


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

Java

1
2
3
4
5
6
7
8
gridView.setOnTouchListener(new OnTouchListener() {

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

});

Kotlin

1
2
3
gridView.setOnTouchListener { v, event ->
    event.action == MotionEvent.ACTION_MOVE
}


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