【问题标题】:How can I get the ActionBar to render?如何让 ActionBar 呈现?
【发布时间】:2015-05-31 14:50:42
【问题描述】:

我是 Android 开发的新手,我一直在尝试使用 Android Studio。我已经关注Google's tutorial,但我仍然无法在模拟器或真实设备上启动并运行 ActionBar。我已经在清单文件中指定了最低版本,并相应地编辑了菜单和活动 xml 文件。

令人困惑的是,activity_foo.xml 和 menu_foo.xml 中显示的 UI 是不同的:

activity_foo.xml:

menu_foo.xml:

更令人困惑的是,最终应用程序在构建时会在汉堡菜单中同时显示搜索和设置,尽管我不记得在 GUI 预览中看到它:

我该如何解决这个问题?

【问题讨论】:

    标签: android xml rendering


    【解决方案1】:

    令人困惑的是,activity_foo.xml 和 menu_foo.xml 中显示的 UI 是不同的

    他们应该是不同的。一个是向您展示一个布局文件。另一个是向您展示菜单资源。他们的预览不一定要匹配。毕竟,比面包盒大的 Android 应用会有很多布局资源,其中很少会定义 Activity 的内容。

    对于那些确实定义活动内容的布局,IIRC,您可以在布局文件的根元素中使用相同的tools:context=".FooActivity",并且预览可能会考虑到这一点。

    更令人困惑的是,最终应用在构建时会在汉堡菜单中同时显示搜索和设置,尽管我不记得在 GUI 预览中看到过:

    在预览中,搜索项由工具栏式按钮表示(图标是放大镜)。

    在您的菜单资源中,您有一个具有android:showAsAction<item> 和一个具有app:showAsAction<item>。要么您正在使用appcompat-v7 操作栏反向移植,要么您没有。这将由以下因素决定:

    • 您的活动从哪个 Java 类继承(ActionBarActivityAppCompatActivityappcompat-v7

    • 您在清单中为活动使用的主题(如果它基于Theme.AppCompat.*,则您使用的是appcompat-v7

    如果您使用的是appcompat-v7,则需要将android:showAsAction 更改为app:showAsAction。鉴于您在模拟器中运行项目的结果,我猜您使用的是appcompat-v7。如果您对菜单资源进行更改并再次运行项目,您可能会看到搜索项显示为放大镜图标,正如您在预览中看到的那样。我说“可能”是因为可能有也可能没有空间来显示工具栏样式的图标,具体取决于运行您的应用程序的设备的屏幕尺寸和方向 - 如果有 ifRoom 的操作栏项目将显示为工具栏样式的按钮有空间,否则将进入溢出菜单。

    【讨论】:

    • 谢谢,它只需要一个应用程序:showAsAction="always"
    猜你喜欢
    • 2012-01-05
    • 2010-09-23
    • 1970-01-01
    • 1970-01-01
    • 2010-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多