Прикладная тема вылетает на устройстве Oreo 8.1

Как я запуталась, вылет произошел в устройстве 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. Пожалуйста, поддержите меня, чтобы исправить это.

Ваш ответ очень важен !!!

попробуйте: <style name = "AppTranslTheme" parent = "Theme.AppCompat.Light.NoActionBar">

Dhara Jani 08.09.2018 09:29
0
1
908
2

Ответы 2

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

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

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

android:screenOrientation = "portrait"

В 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>

Другие вопросы по теме