何时调用View.onConfigurationChanged?

时间:2016-01-06 15:36:36

标签: android

何时调用View.onConfigurationChanged? 如果显示它的Activity未注册configChanges中的任何Manifest,是否可以调用它?

2 个答案:

答案 0 :(得分:1)

以下是Google针对您提问的文档:

  

当您的活动正在运行时,设备配置发生变化时由系统调用。请注意,只有在清单中选择了要使用configChanges属性处理的配置时,才会调用此方法。如果发生任何未选择由该属性报告的配置更改,则系统将停止并重新启动活动(而不是使用新配置启动),而不是报告它。

正如您所看到的那样,如果您在清单中定义“configChanges”,它将只运行 。 的 Source

答案 1 :(得分:-2)

更改屏幕方向时调用此方法。当屏幕方向为横向时,请执行此操作,当potrait执行此操作时,您可以如下所示进行定义。

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

    // Checks the orientation of the screen
    if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();
    } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
        Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show();
    }
}

请记住将它们放入Android清单:

<activity 
   android:configChanges=["orientation"]
   . . .
</activity>