Я хочу, чтобы мое приложение работало только на книжной ориентации для мобильных телефонов и работало только на альбомной ориентации для планшетов.
Но я не установил ни одного android: screenOrientation = "XXXXXXX" в манифесте.(Может быть, это плохо, что не делать) И я использую это для всех своих действий:
if(getResources().getBoolean(R.bool.portrait_only)){
if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.O)
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
isMobile = true
} else
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE
У меня есть три макета, например:
activity_main (layout) (для мобильного только в портретном режиме)
activity_main (layout-large-land)
activity_main (layout-xlarge-land)
CASE CRASH:
Когда планшет заблокирован в портретном режиме (что означает, что автоматическое вращение отключено), он загружает макет activity_main (мобильная версия) в ландшафтном режиме вместо макета - (x) большой земли.Таким образом, происходит сбой приложения, потому что некоторые виджеты не существуют на моем мобильном макете. isMobile равно false , поэтому при связывании компонентов происходит сбой, поскольку их нет в этом макете:
if (!isMobile) {
mClientButton = findViewById<View>(R.id.client) as ImageButton
mStatButton = findViewById<View>(R.id.stat) as ImageButton
mOptionButton = findViewById<View>(R.id.option) as ImageButton
}
Где я что-то не так делаю?Если вам нужна дополнительная информация, сообщите мне.
РЕШЕНИЕ:
Еще нет