gpt4 book ai didi

java - Android Studio 0.5.7 不会在操作栏中显示按钮

转载 作者:太空狗 更新时间:2023-10-29 16:38:02 40 4
gpt4 key购买 nike

我最近开始使用 Android Studio 而不是 Eclipse 的 ADT 插件。总的来说,我在使用 Android Studio 时遇到的问题很少,而且转换也不是太困难。今天晚上,我在 Android Studio 中开始了一个新项目,并为主要 Activity 快速设置了一个基本布局,并添加了一个包含三个项目的操作栏。编辑菜单 xml 文件时菜单的预览显示操作栏中的按钮,但是当我在我的 Galaxy SII(运行 android 4.2.2)或 Genymotion 模拟器(运行 android 4.3)中启动应用程序时,按钮是总是被迫进入溢出菜单。我禁用了操作栏中的应用程序标题以确保按钮有足够的空间,但仍然没有成功。

然后我在 Eclipse 中创建了一个项目并复制了菜单的 XML。在我的手机和模拟器上,按钮出现在操作栏中而不是溢出菜单中。在这一点上,我看不出有任何理由可以解释为什么项目在两个不同的 IDE 中会有不同的表现。我将 Eclipse 项目导入到 Android Studio 中,令人惊讶的是,当我再次在手机和模拟器上启动该应用程序时,按钮出现在操作栏中。

有没有人遇到过类似的问题?在我设法在 Android Studio 中获得一个按我希望的方式工作的项目之前,我在原地打转了几个小时,这让我非常沮丧。

Android Studio 0.5.7 中的以下步骤应该会让您达到与我相同的目的。

  1. 创建一个新项目。
  2. 将最低 API 级别设置为 11。
  3. 将目标 API 设置为 19。
  4. 将所有其他设置保留为默认设置并创建项目。
  5. 在 res/menu 文件夹中创建一个名为 test_menu.xml 的文件
  6. 将以下内容添加到文件中:

    <item android:id="@+id/testmeniitem"
    android:title="Test Menu Item"
    android:showAsAction="always"
    android:icon="@drawable/ic_launcher"
    />

预览应该如下所示: Menu preview

  1. 在 MainActivity.java 中更新 onCreateOptionsMenu 以便它展开测试菜单。

    getMenuInflater().inflate(R.menu.test_menu, menu);

  2. 在您选择的设备上运行该项目。菜单项应该存在,但只出现在溢出菜单中。

如果需要更多信息,请告诉我,我会更新问题。

最佳答案

尝试如下:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">

<item android:id="@+id/testmeniitem"
android:title="Test Menu Item"
android:showAsAction="always"
app:showAsAction="always"
android:icon="@drawable/ic_launcher"
/>

</menu>

您需要放置一个自定义命名空间并设置两次 showAsAction

我知道这很奇怪,但必须这样做才能确保 showAsAction 适用于所有 API 和所有兼容库。

来自ActionBar buttons documentation page :

If your app is using the Support Library for compatibility on versions as low as Android 2.1, the showAsAction attribute is not available from the android: namespace. Instead this attribute is provided by the Support Library and you must define your own XML namespace and use that namespace as the attribute prefix. (A custom XML namespace should be based on your app name, but it can be any name you want and is only accessible within the scope of the file in which you declare it.)

关于java - Android Studio 0.5.7 不会在操作栏中显示按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23518562/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com