862 字
4 分钟
Android学习笔记——选项菜单

image.png

菜单的用途#

在移动应用程序中,菜单是一种常见的用户界面元素,用于提供用户与应用程序交互的方式。菜单的主要用途包括:   导航: 菜单可以用于导航到应用程序的不同部分。通过菜单,用户可以轻松访问应用程序的不同功能或页面,使应用的结构更加清晰。   操作: 菜单提供了执行特定操作的方式。这些操作可以是与应用程序功能相关的命令,例如保存、删除、编辑等。通过菜单,用户可以方便地执行这些操作而不必依赖其他界面元素。   设置: 菜单通常包含应用程序的设置选项,允许用户自定义应用的行为和外观。这可以包括更改主题、调整通知设置、切换语言等。   上下文操作: 上下文菜单是在特定元素上下文中出现的菜单,提供与所选元素相关的操作。这在列表视图、图像等元素上非常常见。   快捷方式: 菜单可以提供快捷方式,让用户更快地执行常用的操作,提高用户体验。  

为什么我的程序不显示菜单栏?#

新版Android Material Design主题的样式默认隐藏了ActionBar,有两种方法可以调出ActionBar:

方法一:修改Theme.xml#

在Android应用中,theme 文件用于定义应用的整体外观和样式。theme 文件允许你在一个地方集中定义应用的颜色、字体、边距等视觉属性,以确保应用在不同部分保持一致的外观。   Theme.xml文件位于res/values/themes.xml,大概长这样:

<resources xmlns:tools="http://schemas.android.com/tools">

    <!-- 
        基础应用主题。
        这是应用的基础主题,定义了整体外观。
        继承自 Theme.AppCompat.Light.DarkActionBar,表示使用亮色主题,并包含深色操作栏。
    -->
    <style name="Base.Theme.Class3" parent="Theme.Material3.Light.NoActionBar">
        <!-- 在这里定制你的亮色主题。 -->
        <!-- 取消下面的注释并指定相应的属性,以定制主题颜色。 -->
        <!-- <item name="colorPrimary">@color/my_light_primary</item> -->
    </style>

    <!-- 
        Class3 主题。
        继承自基础主题 (Base.Theme.Class3),可以进一步定制或覆盖特定于 Theme.Class3 的属性。
    -->
    <style name="Theme.Class3" parent="Base.Theme.Class3" />

</resources>

<style name="Base.Theme.Class3" parent="Theme.Material3.Light.NoActionBar">改为<style name="Base.Theme.Class3" parent="Theme.AppCompat.Light.DarkActionBar">即可    

Theme.AppCompat.Light.DarkActionBar: 库: 这是 AppCompat 库中提供的主题,用于在早期版本的 Android 上提供一致的外观和功能。AppCompat 库的目标是确保应用在新旧 Android 版本上都能够提供类似的用户体验。 特征: 这个主题适用于亮色的应用主题,并包含一个深色的操作栏(ActionBar),以提供一致的外观。它是为了确保应用在 Android 2.1(API 级别 7)及更高版本上具有一致的 UI 风格而设计的。 Theme.Material3.Light.NoActionBar: 库: 这是 Material Design 组件库中提供的主题,用于实现 Material Design 设计风格的应用程序。Material Design 强调材质和动画效果,提供更现代、干净的用户界面。 特征: 这个主题适用于亮色的应用主题,但不包含操作栏(ActionBar)。通常,如果应用的设计不需要传统的操作栏,而是更喜欢使用新的顶部应用栏或者没有应用栏,那么可以选择使用 NoActionBar 的主题。

方法二:修改AndroidManifest.xml#

这个方法好像不行,正在琢磨中……

未完待续……#

Android学习笔记——选项菜单
https://blog.ytmc.fun/posts/android学习笔记选项菜单
作者
yitong
发布于
2023-11-14
许可协议
CC BY-NC-SA 4.0