2011-01-31 51 views
33

我正在使用GridView作为游戏板。最近有些用户在垂直滚动时出现了问题(在运行2.2的三星Galaxy/Vibrant手机上) - 我的Nexus One上不会出现此错误。如何在Android中禁用GridView滚动?

一位用户产生了一些screenshots的问题。

我该如何锁定GridView?有没有办法禁用滚动?

回答

87

尝试添加或覆盖setOnTouchListenerGridView, 然后在onTouch方法,你可以使用这样的代码,以使 不gridview滚动:

gridview.setOnTouchListener(new OnTouchListener(){ 

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

}); 
10

您可以尝试setEnabled(false),虽然它可能有其他副作用。 GridView实际上并不意味着以您使用它的方式使用。您应该创建自己的自定义视图或布局。你也可以使用TableLayout。

+0

是的,我知道它应该是一个自定义视图。将会更多地涉及到替换当前的GridView(早期设计错误)。希望能够快速修复:) setEnabled()方法禁用所有功能。感谢Romain – pjama 2011-01-31 20:36:10

+1

罗曼盖伊不想让你在没有滚动的情况下使用GridView。我使用这个http://stackoverflow.com/a/4536955/671543技巧。 – njzk2 2011-12-02 14:22:57