美文网首页
自定义控件,滑动冲突

自定义控件,滑动冲突

作者: 一直在变的风 | 来源:发表于2016-08-10 14:48 被阅读60次

    引用的文章:http://blog.csdn.net/superharder/article/details/40818019

    http://blog.csdn.net/psh24053/article/details/7517029

    一、 想想我们需要自定义哪些属性。

    在res/values/attrs.xml 文件中写自定义的属性

    属性文件

    二、在布局文件中,需要包名.控件名,才可以使用这个控件,使用自定义的属性,需要声明命名控件,不在是android:xxx。

    布局文件

    三、获取属性值对View初始化

    获取属性值

    一、ScrollView嵌套ListView的滑动冲突问题

    方法一:ListView在布局文件中高度,不管是match_parent,wrap_content,就会显示成一行。如果ScrollView中内容一屏显示不了,和Listview的滚动发生冲突,会出现ListView无法滚动。为什么呢?滑动事件不知道交给哪个处理,默认ScrollView拦截了滑动事件,所以造成了ListView不会滑动的现象。怎么解除滑动方向一致的冲突呢?有两种解决方法:1.外部拦截法,2.内部拦截法。对于这种情况推荐方法1,处理比较简单。

    给ListView添加Touch监听

    根据在ListView那块区域点击事件我们来区分让那一个控件来滑动,事件类型为move,down时,告诉父容器不能拦截事件。我们可以通过父容器的一个方法requestDisallowInterceptTouchEvent方法来屏蔽父容器的拦截功能。

    方法二:自定义一个继承ListView的类,在onMeasure方法中,给出高度,一般这个值Intenger.MAX_VALUE >>2 .在运行出是什么样的,一个展开的ListView,数据全部显示出来。

    onMeasure方法 片段一 片段二 片段三

    相关文章

      网友评论

          本文标题:自定义控件,滑动冲突

          本文链接:https://www.haomeiwen.com/subject/dzzdsttx.html