2

我刚刚开始使用 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();
}

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

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

提前致谢 :)

4

1 回答 1

0

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

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

    Handler handler = new Handler() 
    { 
          public void handleMessage(Message msg) 
          {
             invalidate();
          }
    }
    handler.sendEmptyMessage(0);
于 2012-07-03T13:49:56.417 回答