Android ViewPager invalidate()无效

时间:2012-07-03 13:24:44

标签: android android-viewpager

我刚刚开始使用android开发并且使ViewPager失效真的让我烦恼:/

有人可以告诉我如何在更改方向时使ViewPager无效。

这是我到目前为止所尝试的 -

@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);

     myPager = (ViewPager) findViewById(R.id.my_pager);
     myPager.setAdapter(adapter);
     myPager.setCurrentScreen(currentPosition, false);
     invalidate();
}

上面的代码在附加调试时工作正常。但它不适用于运行时(没有调试模式)。我也尝试过睡眠,但视野没有变化。

有人可以详细解释这里发生了什么吗?

提前致谢:)

1 个答案:

答案 0 :(得分:0)

听起来像某种竞争条件:)尝试在处理程序中调用invalidate并在配置更改结束时调用处理程序:

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);

    Handler handler = new Handler() 
    { 
          public void handleMessage(Message msg) 
          {
             invalidate();
          }
    }
    handler.sendEmptyMessage(0);