onConfigurationChanged

onConfigurationChanged

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


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

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

提前致谢 :)

最佳答案

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

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

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

10-07 19:44