Я бы сделал это, если бы моя страница настроек записывалась в SharedPreferences для моего приложения, затем читал это значение и вызывал Activity.setRequestedOrientation () из кода при просмотре текста.вопрос загружен или отображается.
Например:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
if (prefs.getBoolean("fix_orientation_to_portrait", false)) {
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
} else {
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
}
Это может быть метод onCreate()
или onResume()
.Единственная причина, по которой его нельзя использовать в методе onCreate()
, заключается в том, что изменение настройки происходит в этом упражнении или в дочернем действии, которое вернется к этому, когда оно будет выполнено.
Edit:
ОК, если это не сработает (и я не совсем уверен, что это будет), возможно, вы можете попробовать использовать два разных XML-файла макета - один с установленным screenOrientation идругой без.Когда вы загружаете свою активность / вид, вы можете динамически загружать одну или другую на основе ваших сохраненных предпочтений.Это противно не чисто, но должно работать.