美文网首页面试题
ScrollView嵌套ListView最佳解决方案

ScrollView嵌套ListView最佳解决方案

作者: jumpwang | 来源:发表于2019-08-29 18:36 被阅读0次

            日常开发中经常会碰到ScrollView嵌套ListView的情况,但两者都有滑动事件,因此会因滑动事件冲突,而引发不能滑动问题;

            自定义ListView:重写其中的onMeasure()方法;

            因为ScrollView默认把Childview设置为UNSPEFEIED模式,而该模式下的ListView给自己的测量的高度就是第一个item的高度:int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST)如图:

            

    1

    该方法的作用是根据大小和模式来生成一个int值,这个int值封装了模式和大小信息

    MeasureSpec用int类型表示,前2位代表模式,后30位代表大小. 第一个参数Integer.MAX_VALUE >> 2:Integer.MAX_VALUE,第二个参数MeasureSpec.AT_MOST:表示这个控件适配父控件的最大空间.

             当然除了这种方法外,还有别的方法可实现,比如:1:用LinearLayout取代ListView;2:将ListView的高度写死;3:用单个ListView取代ScrollView中所有内容,但个人觉得还是重写onMeasure方法最佳些    

    相关文章

      网友评论

        本文标题:ScrollView嵌套ListView最佳解决方案

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