listview gridview屏蔽滑动及嵌套时解决方法
2016-05-06 13:32
274 查看
最近做的东西牵扯到listview gridview屏蔽滑动的问题,自己做一个笔记省的以后乱找。
1、单纯的listView以及gridView屏蔽滑动
两个控件屏蔽滑动的方式是一样的,都是利用事件分发机制,这儿正好有一个GridView,就以它作为例子了。一下是代码,比较简单
我看还有写的比较复杂的事件分发,因为这儿的方法就能解决我的问题,所以没有列举其他的。
2、ListView嵌套GridView或者ScrollView里嵌套这两个控件
由于ListView跟GridView都继承自ScrollView所以再进行嵌套的时候就会产生一些冲突。这儿我们从新计算控件的高度来解决这个问题。
1、单纯的listView以及gridView屏蔽滑动
两个控件屏蔽滑动的方式是一样的,都是利用事件分发机制,这儿正好有一个GridView,就以它作为例子了。一下是代码,比较简单
public class MyGridview extends GridView { public MyGridview(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public MyGridview(Context context, AttributeSet attrs) { super(context, attrs); } public MyGridview(Context context) { super(context); } @Override public boolean dispatchTouchEvent(MotionEvent ev) { //下面这句话是关键 if (ev.getAction()==MotionEvent.ACTION_MOVE) { return true; } return super.dispatchTouchEvent(ev); } }
我看还有写的比较复杂的事件分发,因为这儿的方法就能解决我的问题,所以没有列举其他的。
2、ListView嵌套GridView或者ScrollView里嵌套这两个控件
由于ListView跟GridView都继承自ScrollView所以再进行嵌套的时候就会产生一些冲突。这儿我们从新计算控件的高度来解决这个问题。
public class MyGridview extends GridView { public MyGridview(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public MyGridview(Context context, AttributeSet attrs) { super(context, attrs); } public MyGridview(Context context) { super(context); } /** * 设置不滚动 */ public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, expandSpec); } }
相关文章推荐
- 托管项目到GitHub
- 在EntityFramework6中管理DbContext的正确方式——4DbContextScope:一个简单的,正确的并且灵活的管理DbContext实例的方式(外文翻译)
- 在EntityFramework6中管理DbContext的正确方式——3环境上下文DbContext vs 显式DbContext vs 注入DbContext(外文翻译)
- 23种设计模式(4):建造者模式
- 第零篇大数据学习介绍
- 非PAE CPU安装ubuntu的问题
- sublime text3的基本快捷操作
- Oracle数据库语法之【DCL】常用汇总-【更新】
- 4、Ajax与Java交互的案例
- springmvc错误java.lang.IllegalArgumentException
- 在EntityFramework6中管理DbContext的正确方式——2DbContext的默认行为(外文翻译)
- 企业工商信息查询
- 【HUSTOJ】1076: 数组逆序
- Container With Most Water
- hdu 2819 Swap【完美二分匹配】
- Android 自定义 ViewPager 打造千变万化的图片切换效果
- MySQL使用udf调用系统程序
- 【Linux基础】Linux系统默认目录功能简介
- Rabbitmq 启动报错
- discuz mobile 接口加载过程