关于ScrollView和ViewPager的冲突问题解决方法
在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的冲突问题解决方法相关推荐
- Android ViewPager嵌套ViewPager滑动冲突处理方法
dispatchTouchEvent方法用于事件的分发,Android中所有的事件都必须经过这个方法的分发, 然后决定是自身消费当前事件还是继续往下分发给子控件处理.返回true表示不继续分发,事件没 ...
- prototype.js 和jquery-1.6.2.js冲突问题解决方法
在写项目中同时用到了jquery-1.6.2.js和prototype.js两个js文件,使用$的时候冲突.解决方法: 首先引入jquery-1.6.2.js,然后重定义$. <script t ...
- Halcon中MIN宏定义与自己定义的C++中MIN函数--重命名冲突问题解决方法
想要实现一个取得最小值的函数,发现一直出问题,报错 看上面MIN显示为一个宏定义,但是下面才是我们要的函数 看来是重名了,尝试了加括号的方法发现还是不行 后来,考虑到HALCON中的MIN我们不用,解 ...
- jQuery$命名冲突问题解决方法
也许你在看此文章之前还不知道jquery有一个noConflict()东西了,它就是为了避免与其它js插件碰到相同变量的一个解决方法,利用noConflict()可以把变量存到其它指定的变量中去如,我 ...
- git am冲突问题解决方法
文章目录 1.git am出现冲突 2.git apply --reject合入不冲突部分,保留冲突部分 3.git status 查看状态 4.手动解决冲突,并删除*.rej文件,然后git add ...
- 解决ScrollView嵌套ViewPager出现的滑动冲突问题
/** * 解决ScrollView嵌套ViewPager出现的滑动冲突问题 */ public class ScrollView1 extends ScrollView { private bool ...
- spring boot log4j2与三方依赖库log4j冲突无法初始化问题解决方法
spring boot log4j2与三方依赖库log4j冲突无法初始化问题解决方法 参考文章: (1)spring boot log4j2与三方依赖库log4j冲突无法初始化问题解决方法 (2)ht ...
- 关于ViewPager嵌套ViewPager左右滑动冲突解决方法
情况如下,TabLayout+ViewPager+Fragment,其中一个Fragment里面又嵌套了一层TabLayout+ViewPager+Fragment,运行的时候出现了两个情况. 1.子 ...
- Android滑动冲突解决方法
Android滑动冲突解决方法 滑动冲突 首先讲解一下什么是滑动冲突.当你需要在一个ScrollView中嵌套使用ListView或者RecyclerView的时候你会发现只有ScrollView能够 ...
最新文章
- aspnet_Applications表结构
- python中numeric_Python中的Numeric
- July大神---SVM讲解
- 调用iframe中的函数
- OpenGL ES之GLKit的使用功能和API说明
- 自写网站入门阶段之一:熟悉各种标签的运用
- Disruptor并发框架--学习笔记
- ASP.NET基础之HttpContext学习
- 《Algorithms》Comparable 实现冒泡排序
- Ubuntu12.04上编译PlateGatewayQt
- linux系统装好后优化,CentOS 5.6 Linux安装系统后的基本优化
- mysql 类似 oracle connect by_mysql实现层级查询,相似oracle里的connect by prior
- CCNA学习指南 TCP/IP
- RTOS中的任务句柄到底是什么意思?
- 将本地项目上传到码云仓库
- 轻轻一扭,迎来温暖柔风,告别手脚冰凉,卡蛙桌面暖风机上手
- 如何用PDF编辑器编辑、修改PDF文本和图片?
- glusterfs架构和原理
- Leetcode771:宝石与石头
- greenplum时区避坑
热门文章
- python图像亮度提取_Python 图片亮度
- html 轮播图+二级菜单制作
- 限制字数的正则表达式实例
- Elmedia Player Pro for Mac(视频播放器)
- [Video Transformer] Video Swin Transformer
- 关于打印(c#套打...)
- csust周赛 厂里吃鸡王
- PYGAME - image convert
- LeetCode力扣刷题数据库(178):分数排名
- DBC转Excel;DBC转位定义;Excel转DBC;Excel转位定义;MatrixCreat(四)之工具使用