Android 如何在一个中设置 ActionBar Activity

Android how to set ActionBar in just one Activity

我是 Android 的新手,我正面临这个问题。 我得到了 MainActivity 和项目列表,当其中一个被点击时 DetailActivity 开始。

我用

禁用了 ActionBar

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

所以 MainActivity 不再有 actionBar。但是我想要 DetailActivity 中的这个 ActionBar(我需要基本的,用左箭头返回 MainActivity ),所以我创建了另一种样式

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

并像这样在 activity_detail.xml 中使用它 android:theme="@style/DetailTheme"

但是好像这不是正确的做法,因为那个里面没有ActionBar Activity .

我目前不确定 DetailActivity 是否是唯一一个有 ActionBar 的,所以我想知道如何在这个 Activity 上激活它。 正确的解决方案是什么?

不确定,但可以尝试将其分配给清单中的 activity

<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 的 "content view" .内容视图没有操作栏,因此主题的那些属性将被忽略。

要将主题应用到 Activity,您必须在 AndroidManifest.xml

中指定它
<activity
    android:name=".DetailActivity"
    android:theme="@style/DetailTheme"/>