![b269e037a2b9e41138989640b9a52a07.png](https://i-blog.csdnimg.cn/blog_migrate/420b24945b7e4a5a995b85be591bf9f0.jpeg)
下面是具体的滑动效果:
![f29a42235104ae7a99b94a959bcb78ae.gif](https://i-blog.csdnimg.cn/blog_migrate/4808b3b5a763356f1c8d753dd53e4c30.gif)
滑动效果
实现原理
主要布局是两个ScrollView嵌套,通过触摸按钮监听手指触摸按钮时滑动的距离,动态设置上面ScrollView的高度.有个坑是:ScrollView嵌套ViewPager不显示的问题,需要重写ViewPager的OnMeasure方法.
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int height = 0; for (int i = 0; i < getChildCount(); i++) { View child = getChildAt(i); child.measure(widthMeasureSpec, View.MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); int h = child.getMeasuredHeight(); if (h > height) { height = h; } } super.onMeasure(widthMeasureSpec, View.MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY)); }
其他具体的布局和代码,可以看下下面的图片,代码没多少,主要是思路吧.
布局及代码
![6b127782ce867c0b131175369a734969.png](https://i-blog.csdnimg.cn/blog_migrate/b645b6176afdac87188584f546df4538.jpeg)
布局1
![3f2eaf090876ef748ebe8df59376d73e.png](https://i-blog.csdnimg.cn/blog_migrate/fea4244bbacc8a5e9b9549e3bebe421c.jpeg)
布局2
![f3d3f90e177f1e2d6628e4ce8dd7c24d.png](https://i-blog.csdnimg.cn/blog_migrate/269c172efd4d178c88f5cbcbc1388378.jpeg)
布局3
![d7031c9fe6c5795af7431aaa2d211753.png](https://i-blog.csdnimg.cn/blog_migrate/fca3220898aae31819c11a0ca164ac0d.jpeg)
代码