前几天写的指示器内对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) {
}
});