Android: кнопка «Назад» исчезает с панели инструментов после закрытия приложения

У меня есть действие, содержащее панель инструментов с такой кнопкой «Назад».

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <androidx.appcompat.widget.Toolbar
        style="@style/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:minHeight="?attr/actionBarSize" />
</LinearLayout>

и вот используемый стиль панели инструментов

<style name="toolbar">
        <item name="navigationIcon">?attr/homeAsUpIndicator</item>
</style>

Кнопка «Назад» работает, как и ожидалось, но я сталкиваюсь со странной ошибкой, когда кнопка «Назад» исчезает только тогда, когда я закрываю приложение из последних приложений или происходит сбой приложения и я снова открываю приложение. как на следующем рисунке , но если я нажму на место, где должна быть кнопка, это будет выглядеть следующим образом: введите здесь описание изображения


person Remon Shehatta    schedule 11.10.2020    source источник


Ответы (2)


arrow_upward
0
arrow_downward

Был ли он когда-либо темнее?
Потому что теперь я вижу, что вы, возможно, установили кнопку возврата на панели инструментов, которую можно рисовать, на тот же цвет, что и ваша панель инструментов. Вы можете проверить, есть ли у вас такая же проблема, когда вы меняете фон представления панели инструментов.

Одним из решений является изменение значка android:homeAsUpIndicator, отображаемого в теме вашего приложения:

<style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
    <item name="android:homeAsUpIndicator">@drawable/dark_back_button_drawable</item>
</style>
person baltekg    schedule 11.10.2020
comment
это не имеет смысла. так как приложение работает нормально, и это происходит только после того, как приложение убито. Кстати, цвет панели инструментов светлый, а сама кнопка темная, так что это не должно быть проблемой. любые другие идеи? - person Remon Shehatta; 12.10.2020
comment
Вы говорите, что это происходит после того, как приложение было убито, поэтому, если оно запускается нормально, это также происходит? Потому что это две одинаковые вещи: запуск приложения в обычном режиме и после того, как приложение было убито. - person baltekg; 12.10.2020
comment
если заводится нормально то этого не происходит. только когда приложение убито или приложение аварийно завершено и перезапущено. - person Remon Shehatta; 12.10.2020
comment
Не могли бы вы предоставить фрагмент кода активности и/или фрагмента, который у вас есть на панели инструментов, и возникает эта проблема? - person baltekg; 12.10.2020

arrow_upward
0
arrow_downward

Когда вы применяете тему к представлению, вы должны указать родительскую тему, если хотите изменить обычное поведение с определенной частью.

<style name="AppTheme.BackNavigationToolbar" parent="Widget.AppCompat.Toolbar">
    <item name="navigationIcon">?attr/homeAsUpIndicator</item>
</style>

Если вы решите использовать панель инструментов, которую вы получаете из действия, а не объявляете ее в xml. Вы можете просто использовать setDisplayHomeAsUpEnabled(true). Если вы хотите узнать больше об этом, посетите эту страницу: https://developer.android.com/training/appbar/up-action

supportActionBar?.setDisplayHomeAsUpEnabled(true)

Если вы перемещаетесь между двумя действиями, вам просто нужно указать родительское действие в AndroidManifest.xml.

пример

<activity android:name=".SecondActivity"
        android:label = "Second Activity"
        android:parentActivityName=".MainActivity">

        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value=".MainActivity" />
</activity>

Дополнительные ресурсы: https://developer.android.com/training/appbar/setting-up

person OscarCreator    schedule 12.10.2020