Прикладная тема вылетает на устройстве Oreo 8.1 - PullRequest
0 голосов
/ 08 сентября 2018

Как я запутался, произошел сбой в устройстве Oreo (8.1) для прикладной темы.Вот мой код, пожалуйста, проверьте его.

  <activity
            android:name=".Menu_Activity"
            android:screenOrientation="portrait"
            android:theme="@style/AppTranslTheme" />

<style name="AppTranslTheme" parent="android:Theme.Translucent.NoTitleBar">

Пока я удалил android: theme, приложение не падает.Но я пропустил прозрачность экрана.Мне нужно это тоже без сбоя в Oreo. Пожалуйста, поддержите меня, чтобы это исправить.

Ваш ответ высоко ценится !!!

Ответы [ 2 ]

0 голосов
/ 08 сентября 2018

В Android Oreo вы не можете изменить ориентацию для Activity, просто используя XML, если стиль (или родительский стиль) имеет следующую строку:

<item name="android:windowIsTranslucent">true</item>

Сначала удалите

android:screenOrientation="portrait"

и в java-файле напишите такой код:

    if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    }

Может быть, это ошибка, кто знает.

Если вы ищите стиль Theme.Translucent из framework themes.xml, (нажмите) вы найдете

<item name="android:windowIsTranslucent">true</item>
0 голосов
/ 08 сентября 2018

Если вы прочитаете журнал ошибок и трассировку стека, вы найдете:

java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation

Таким образом, простое решение будет таким: удалите нижнюю строку из файла манифеста для этого действия:

android:screenOrientation="portrait"
...