Android, как установить ActionBar всего за одно действие - PullRequest
0 голосов
/ 16 октября 2018

Я новичок в Android и столкнулся с этой проблемой.Я получил MainActivity со списком элементов, при нажатии на один из них запускается DetailActivity.

Я отключил ActionBar с помощью

<style name="AppTheme" parent="android:Theme.Material.Light.NoActionBar">

, поэтому в MainActivity больше не было actionBar,Но я хочу этот ActionBar в DetailActivity (мне нужен базовый, со стрелкой влево, чтобы вернуться к MainActivity), поэтому я создал другой стиль

<style name="DetailTheme" parent="android:Theme.Material.Light.DarkActionBar">

и использовал его вactivity_detail.xml вот так android:theme="@style/DetailTheme"

Но, похоже, это неправильный путь, потому что в этом действии нет ActionBar.

В настоящее время я не уверен, будет ли DetailActivityтолько один с ActionBar, поэтому я хотел бы знать, как активировать его только на этом одном действии.Каково правильное решение для этого?

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

использовал его в файле activity_detail.xml следующим образом android:theme="@style/DetailTheme"

Лучше всего предположить, что вы добавили атрибут android:theme в корневой тег представления в файле макета.Может быть, что-то вроде этого:

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:theme="@style/DetailTheme"
    ...
    />

На самом деле тема не применяется к вашей Активности , она применяется только к «представлению контента» вашей Деятельности.Представления содержимого не имеют панелей действий, поэтому эти атрибуты темы будут игнорироваться.

Чтобы применить тему к действию, необходимо указать ее в AndroidManifest.xml

<activity
    android:name=".DetailActivity"
    android:theme="@style/DetailTheme"/>
0 голосов
/ 16 октября 2018

Не уверен, но, возможно, попробуйте назначить это действие в манифесте

<activity android:name=".DetailActivity"
            android:theme="@style/DetailTheme"/>
...