在android App开发的时候,很多人都会用到ScrollView、ViewPager,很多时候为了满足设计需求这两个控件之间都会进行嵌套使用。但是ScrollView中默认是不能存在可滑动的控件的,所以这里提供一种解决两者共同使用问题的方法,如有觉得代码、逻辑不妥的地方,还请见谅,也非常乐意和大家一起沟通交流,共同进步~

试过往ScrollView里加ViewPager的人可能都会遇到无法显示ViewPager的问题,网上也有说使用android:fillViewport的,但设置后又发现ScrollView没法滚动了,然后就只能想着如何自定义ScrollView,其实,ViewPager显示不出来可能是因为ViewPager的高度没有设置的问题,这里提供一个简单粗暴的办法就是把ViewPager的高度写死了,设置xxdp就能看到了,如果觉得设置的固定的高度会对适配有影响,也可以在onMeasure中指定下ViewPager的高度,这里是将子view的高度设置给了ViewPager,当然也可以获取屏幕的宽高等为其设置相应的比例,代码很简单,不多说什么了:

public class CustomPager extends ViewPager {

public CustomPager(Context context, AttributeSet attrs) {
super(context, attrs);
}

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int height = 0;
// 遍历子View,取最大的高度
for (int i = 0; i < getChildCount(); i++) {
View view = getChildAt(i);
view.measure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(0, 0));
int viewHeight = view.getMeasuredHeight();
if (viewHeight > height) {
height = viewHeight;
}
}

heightMeasureSpec = MeasureSpec.makeMeasureSpec(height,
MeasureSpec.EXACTLY);

super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}

}

好吧,就这么简单,希望对大家有帮助!第一次写博客哈,好紧张,内容不多,后续我会越来越努力的!

资源下载,请猛戳这里^__^

关于ScrollView和ViewPager的冲突问题解决方法相关推荐

  1. Android ViewPager嵌套ViewPager滑动冲突处理方法

    dispatchTouchEvent方法用于事件的分发,Android中所有的事件都必须经过这个方法的分发, 然后决定是自身消费当前事件还是继续往下分发给子控件处理.返回true表示不继续分发,事件没 ...

  2. prototype.js 和jquery-1.6.2.js冲突问题解决方法

    在写项目中同时用到了jquery-1.6.2.js和prototype.js两个js文件,使用$的时候冲突.解决方法: 首先引入jquery-1.6.2.js,然后重定义$. <script t ...

  3. Halcon中MIN宏定义与自己定义的C++中MIN函数--重命名冲突问题解决方法

    想要实现一个取得最小值的函数,发现一直出问题,报错 看上面MIN显示为一个宏定义,但是下面才是我们要的函数 看来是重名了,尝试了加括号的方法发现还是不行 后来,考虑到HALCON中的MIN我们不用,解 ...

  4. jQuery$命名冲突问题解决方法

    也许你在看此文章之前还不知道jquery有一个noConflict()东西了,它就是为了避免与其它js插件碰到相同变量的一个解决方法,利用noConflict()可以把变量存到其它指定的变量中去如,我 ...

  5. git am冲突问题解决方法

    文章目录 1.git am出现冲突 2.git apply --reject合入不冲突部分,保留冲突部分 3.git status 查看状态 4.手动解决冲突,并删除*.rej文件,然后git add ...

  6. 解决ScrollView嵌套ViewPager出现的滑动冲突问题

    /** * 解决ScrollView嵌套ViewPager出现的滑动冲突问题 */ public class ScrollView1 extends ScrollView { private bool ...

  7. spring boot log4j2与三方依赖库log4j冲突无法初始化问题解决方法

    spring boot log4j2与三方依赖库log4j冲突无法初始化问题解决方法 参考文章: (1)spring boot log4j2与三方依赖库log4j冲突无法初始化问题解决方法 (2)ht ...

  8. 关于ViewPager嵌套ViewPager左右滑动冲突解决方法

    情况如下,TabLayout+ViewPager+Fragment,其中一个Fragment里面又嵌套了一层TabLayout+ViewPager+Fragment,运行的时候出现了两个情况. 1.子 ...

  9. Android滑动冲突解决方法

    Android滑动冲突解决方法 滑动冲突 首先讲解一下什么是滑动冲突.当你需要在一个ScrollView中嵌套使用ListView或者RecyclerView的时候你会发现只有ScrollView能够 ...

最新文章

  1. aspnet_Applications表结构
  2. python中numeric_Python中的Numeric
  3. July大神---SVM讲解
  4. 调用iframe中的函数
  5. OpenGL ES之GLKit的使用功能和API说明
  6. 自写网站入门阶段之一:熟悉各种标签的运用
  7. Disruptor并发框架--学习笔记
  8. ASP.NET基础之HttpContext学习
  9. 《Algorithms》Comparable 实现冒泡排序
  10. Ubuntu12.04上编译PlateGatewayQt
  11. linux系统装好后优化,CentOS 5.6 Linux安装系统后的基本优化
  12. mysql 类似 oracle connect by_mysql实现层级查询,相似oracle里的connect by prior
  13. CCNA学习指南 TCP/IP
  14. RTOS中的任务句柄到底是什么意思?
  15. 将本地项目上传到码云仓库
  16. 轻轻一扭,迎来温暖柔风,告别手脚冰凉,卡蛙桌面暖风机上手
  17. 如何用PDF编辑器编辑、修改PDF文本和图片?
  18. glusterfs架构和原理
  19. Leetcode771:宝石与石头
  20. greenplum时区避坑

热门文章

  1. python图像亮度提取_Python 图片亮度
  2. html 轮播图+二级菜单制作
  3. 限制字数的正则表达式实例
  4. Elmedia Player Pro for Mac(视频播放器)
  5. [Video Transformer] Video Swin Transformer
  6. 关于打印(c#套打...)
  7. csust周赛 厂里吃鸡王
  8. PYGAME - image convert
  9. LeetCode力扣刷题数据库(178):分数排名
  10. DBC转Excel;DBC转位定义;Excel转DBC;Excel转位定义;MatrixCreat(四)之工具使用