Android嵌套滑动控件的冲突解决和ViewPager适配当前子控件高度不留空白的办法
Posted HyperionChen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android嵌套滑动控件的冲突解决和ViewPager适配当前子控件高度不留空白的办法相关的知识,希望对你有一定的参考价值。
最近项目有一个需求,需要多层可滑动控件的嵌套展示,demo效果如下,demo的下载地址在最后
咋一看好像挺简单啊,不就是一个ScrollView + ViewPager + ListView吗,我开始也这样觉得,也用的这种方式实现,结果始终和效果不对劲。这里总结几点问题:
- 两个或两个以上的滑动控件嵌套时,如果layout_height采用的是wrap_content会造成内部滑动控件的高度不能正确的计算,会导致内部滑动控件的高度始终为0,除非你用定值设置,比如300dp。
- 两个相同滑动方向的滑动控件嵌套,会使其中一个控件的滑动事件失效。
- 如果采用ScrollView作为最外层的滑动控件,则会产生莫名其妙的移位BUG,通过日志发现是scrollY的异常变化,但是通过scrollTo方法是无效的。
- ViewPager嵌套ListView的时候,默认ViewPager的高度是所有ListView中最高的那个,因此会造成其他ListView底部会有一大片的补白。
以上是关于Android嵌套滑动控件的冲突解决和ViewPager适配当前子控件高度不留空白的办法的主要内容,如果未能解决你的问题,请参考以下文章
解决RcyclerView嵌套EditText时,产生的焦点冲突,导致RecyclerView自动滑动问题
Android 中 DrawerLayout + ViewPager 怎么解决滑动冲突?
Android 解决viewPager中嵌套webView的滑动冲突
Android Scrollview嵌套RecyclerView导致滑动卡顿问题解决