在PageViewer自动滚屏 [英] Automatically scroll in PageViewer
问题描述
我有pageviewer一个问题。我想我的页面滚动每两秒钟。我尝试是这样的:
I have a problem with pageviewer. I want to my page scroll every two seconds. I try something like this:
handler.postDelayed(new Runnable() {
public void run() {
viewPager.setCurrentItem(viewPager.getCurrentItem()+1, true);
}
},2000);
但它的工作原理,只有当我开始活动。如果我把这个code到公共无效onPageSelected(INT页)
它的工作原理,但我想这样做,当我点击和手动滚动网页我想停止这种处理,但它doeasn't工作。我该怎么办呢?
But it works only when I start activity. If i put this code to public void onPageSelected(int page)
it works but I want to do when I click and manually scroll page I want to stop this handler but it doeasn't work. How I can do that?
推荐答案
您应该定义你的Runnable和处理程序是这样的:
You should define your Runnable and Handler like this:
private boolean pagerMoved = false;
private static final long ANIM_VIEWPAGER_DELAY = 2000;
private Handler h = new Handler();
private Runnable animateViewPager = new Runnable() {
public void run() {
if (!pagerMoved) {
viewPager.setCurrentItem(viewPager.getCurrentItem()+1, true);
h.postDelayed(animationFrame, ANIM_VIEWPAGER_DELAY);
}
}
};
请确保您的设置,并在您的onPause和放大器拆除; onResume方法
Make sure that you setup and tear down in your onPause & onResume methods
@Override
public void onPause() {
super.onPause();
if (h != null) {
h.removeCallbacks(animateViewPager);
}
}
@Override
public void onResume() {
super.onResume();
h.postDelayed(animateViewPager, ANIM_VIEWPAGER_DELAY);
}
最后,你需要听你的viewpager触摸事件,使您可以设置pagerMoved为true(将停止进一步的自动页面过渡)。
Finally, you'll need to listen for a touch event on your viewpager so that you can set pagerMoved to true (which will then stop further automatic page transitions).
这篇关于在PageViewer自动滚屏的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!