Android как установить ActionBar всего в одном действии

Я новичок в 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"

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

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

0
0
1 085
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

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

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

used it in activity_detail.xml like this android:theme = "@style/DetailTheme"

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

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

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

Чтобы применить тему к Activity, вы должны указать ее в AndroidManifest.xml.

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

Да, спасибо за объяснение. Добавление темы в манифест помогло.

Froggo 16.10.2018 21:53

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