我目前正在使用setTheme()动态设置Activity的主题。请注意,我不能使用 android:configChanges =“orientation ,因为我需要AlertDialog来重新创建横向模式的布局。
每当我在应用程序的初始点使用setTheme()时,它都可以正常工作。但是,当我切换方向时,主题将恢复为AndroidManifest中设置的原始主题。我该如何解决这个问题?
答案 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);
}