您的位置:首页 > 移动开发 > Android开发

(转)Android 屏蔽/禁止ListView,GridView的滑动/滚动功能

2017-12-05 10:57 417 查看
原地址:http://blog.csdn.net/baiyulinlin1/article/details/52179552

一、简介

在某些情况下,由于项目的需求(比如说九宫格、六宫格、用listview代替一个Linearlayout),可能需要用到禁止Listview或者Gridview的滚动功能,这里能给出两种解决的方案:

(1)自定义view,重写dispatchTouchEven方法(网上没人提到,其实这样用会有一个弊端,就是MotionEvent.ACTION_MOVE被禁止后,移动触摸的事件将会失效,事实上,所有的button和item的点击事件都能通过触摸后移动来取消这个事件。也就是说,这么写后,这个隐性的功能就没了,点击事件将无法取消。手感和用户体验将会下降。)

[java] view
plain copy

public boolean dispatchTouchEvent(MotionEvent ev) {  

    if (ev.getAction() == MotionEvent.ACTION_MOVE) {  

        return true; // 禁止GridView滑动  

    }  

    return super.dispatchTouchEvent(ev);  

  

}  





(2)不需要自定义view,但是需要固定item的数量和高度,然后设置gridview.setOverScrollMode(View.OVER_SCROLL_NEVER)就可以了(不得不说,固定item的数量和高度是非常有必要的,毕竟已经不能滚动了,超出的屏幕的item将毫无意义
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: