ViewPager 丢失监听事件的原因之一
2017-07-10 15:37
155 查看
前几天写的指示器内对ViewPager进行了监听,但是当当前Viewpager不可见 又变成 可见后,会丢失一次监听事件。也就是说 只能监听到 滑动,但是监听不到沉降和停止。
这主要是 ViewPager源码内的一个变量问题。使用 requestLayout 可以重置布局,这样变量就会变为true,就可以继续监听事件了。具体原因及解决办法如下代码:
效果:当ViewPager 从不可见到可见后,会接收不到 闲置和沉降
解决办法:
viewPager.addOnAttachStateChangeListener(new View.OnAttachStateChangeListener() {
@Override
public void onViewAttachedToWindow(View v) {
Log.i("生命周期","执行Attach");
v.requestLayout();
}
@Override
public void onViewDetachedFromWindow(View v) {
}
});
这主要是 ViewPager源码内的一个变量问题。使用 requestLayout 可以重置布局,这样变量就会变为true,就可以继续监听事件了。具体原因及解决办法如下代码:
效果:当ViewPager 从不可见到可见后,会接收不到 闲置和沉降
解决办法:
viewPager.addOnAttachStateChangeListener(new View.OnAttachStateChangeListener() {
@Override
public void onViewAttachedToWindow(View v) {
Log.i("生命周期","执行Attach");
v.requestLayout();
}
@Override
public void onViewDetachedFromWindow(View v) {
}
});
相关文章推荐
- Viewpager的监听事件
- Viewpager设置监听事件不起作用
- ViewPager的滑动监听事件
- Android ViewPager事件滑动监听修改
- Fragment:判断是否显示当前Fragment viewpager ;Fragment监听按键点击事件;显示隐藏事件
- ViewPager中控件的点击事件监听
- [ViewPager]的使用和事件监听,[Xutils中加载的问题]
- ViewPager的页面滑动监听事件onPageChangeListener
- Android ViewPager+Handler实现无限轮播和监听处理事件时轮播速度越来越快的问题解决
- android ViewPager实现无限轮播和设置监听事件
- ViewPager中监听事件的解析
- ViewPager的onPageChangeListene监听事件处理
- 备忘-Android ViewPager 子页监听事件
- Android开发——利用ViewPager实现显示多个item无限轮播+点击事件监听
- 对于ViewPager中嵌套的Viewpager不能响应滑动事件的解决方法
- android 解决ViewPager与Gallery事件冲突
- viewpager与子view的事件冲突解决
- 【事件冲突】ScrollView嵌套ViewPager冲突的解决办法
- Android TextView 字段设置监听事件
- 关于android.view.InflateException: Binary XML file line #7: Error inflating class ViewPager错误的原因及解决办法