【问题标题】:How to disable scrolling in GridView?如何在 GridView 中禁用滚动?
【发布时间】:2012-02-13 01:26:11
【问题描述】:

我的应用程序有一个 GridView。它已经有一个 onItemClickListener 和 onItemLongClickListener。我现在想禁用 GridView 中的滚动。在https://stackoverflow.com/a/6496632/985025 的帮助下,我添加了一个 onTouchListener,如下所示:

        mGridView.setOnItemClickListener(this);  
        mGridView.setOnItemLongClickListener(this);  
        mGridView.setOnTouchListener(new OnTouchListener(){  
            @Override  
            public boolean onTouch(View arg0, MotionEvent arg1) {  
                if(arg1.getAction() == MotionEvent.ACTION_MOVE)  
                    return true;  
                else  
                    return false;  
            }  
        });  

我的预期行为是,当我尝试在 GridView 中滚动时,应该忽略该事件。但是,即使在 onTouch 中返回 true 后,我也会在 onItemClick 中收到一个事件。 如果在 GridView 上滚动,有没有办法避免 onItemClick?

【问题讨论】:

标签: android gridview scroll


【解决方案1】:

使用表格布局。完全达到你想要的。在您的用例中,GridView 的所有回收利用都是一种超级大杀器。

【讨论】:

  • 现在将 GridView 更改为 TableLayout 有点过头了! :D 还有其他线索吗?
【解决方案2】:

这里的人们已经用 ScrollView 吞没了 GridView 并且成功了,我希望它可以帮助任何遇到这个问题的人。

【讨论】:

  • 哦,请不要那样做!这对性能不利(GridView 应该如何猜测它的大小?所以它会根据实际需要创建更多控件)并且如果网格视图不占用ScrollView 的孔空间,两个视图中的哪一个应该滚动? GridViewScrollView 或两者兼而有之?
猜你喜欢
  • 2011-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多