方向更改时setTheme()不起作用

时间:2014-02-06 10:59:08

标签: android android-layout android-theme android-orientation

我目前正在使用setTheme()动态设置Activity的主题。请注意,我不能使用 android:configChanges =“orientation ,因为我需要AlertDialog来重新创建横向模式的布局。

每当我在应用程序的初始点使用setTheme()时,它都可以正常工作。但是,当我切换方向时,主题将恢复为AndroidManifest中设置的原始主题。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

在调用super.onCreate()之前设置主题,例如

protected void onCreate (Bundle savedInstanceState) {
    setTheme (...);
    super.onCreate (savedInstanceState);
    // go on with further initialization    
}

当你的主题被应用之前,super.onCreate()在方向改变之后恢复以前的视图和/或片段状态时,会发生你观察到的行为。

答案 1 :(得分:0)

也可以在此方法中设置主题动态。public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); }