我无法理解为什么错误和不兼容(AndroidStudio告诉我"应该使用app:showAsAction与appcompat库)代码
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/action_search"
android:title="@string/action_search"
android:icon="@drawable/search"
android:showAsAction="always" />
</menu>
Run Code Online (Sandbox Code Playgroud)
工作完美,但适当和兼容的版本
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" >
<item android:id="@+id/action_search"
android:title="@string/action_search"
android:icon="@drawable/search"
app:showAsAction="always" />
</menu>
Run Code Online (Sandbox Code Playgroud)
根本没有显示我的图标.
我正在测试Samsung GT P5210(android v.4.4.2)和Nexus 7(4.4.4)
我有一个带有以下菜单项的操作栏;
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.blah.blah.app.ClientActivity" >
<item android:id="@+id/action_search"
android:icon="@drawable/search"
android:title="@string/action_search"
android:orderInCategory="1"
app:showAsAction="ifRoom|withText"/>
<item android:id="@+id/action_settings"
android:title="@string/action_settings"
android:orderInCategory="5"
app:showAsAction="ifRoom"/>
<item android:id="@+id/action_waiter"
android:title="@string/action_waiter"
android:orderInCategory="6"
app:showAsAction="ifRoom"/>
<item android:id="@+id/action_cleantable"
android:title="@string/action_cleantable"
android:orderInCategory="7"
app:showAsAction="ifRoom"/>
<item android:id="@+id/action_suggest"
android:title="@string/action_suggest"
android:orderInCategory="8"
app:showAsAction="ifRoom"/>
<item android:id="@+id/action_waiterlogin"
android:title="@string/action_waiterlogin"
android:orderInCategory="9"
app:showAsAction="ifRoom"/>
</menu>
Run Code Online (Sandbox Code Playgroud)
问题是我的搜索按钮没有显示在操作栏上但文本显示为溢出.我的行动吧里有足够的空间
我正在使用 "@style/Theme.AppCompat.Light"
谁能帮我 ?
Android Studio 0.5.8
Run Code Online (Sandbox Code Playgroud)
你好,
由于某种原因,图标永远不会显示在ActionBar上,我使用了ifRoom | withText的组合,但仍然无法显示.我也试过在Landscape中旋转.我正在使用genymotion 4.4.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:title="@string/new_crime"
android:id="@+id/menu_item_new_crime"
android:icon="@drawable/ic_action_new"
app:showAsAction="always"/>
</menu>
Run Code Online (Sandbox Code Playgroud)
我正在片段中夸大菜单:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.fragment_crime_list, menu);
}
Run Code Online (Sandbox Code Playgroud)
这是一个截图:

我在纵向和横向模式下尝试过硬件nexus5,但没有图标.
我也试过使用以下内容,但也没有用:
android:icon="@android:drawable/ic_menu_add"
Run Code Online (Sandbox Code Playgroud)
非常感谢任何建议,
我有一个关于"android:showAsAction"的问题.我有一本关于Android的书和那本书(IMO它不是最新的,但大多数东西都是有效的),他们使用
android:showAsAction
Run Code Online (Sandbox Code Playgroud)
在操作栏上显示菜单项(菜单在片段中创建).我正在使用Android Studio.Compile SDK版本设置为API 19(KitKat).我正在我的LG G2上发射它,其上安装了Android 4.4.
我问这是否已被弃用,因为Android Studio告诉我:
Should use app:showAsAction with the appcompat library with xmlns:app="http://schemas.android.com/apk/res-auto" less... (Ctrl+F1)
When using the appcompat library, menu resources should refer to the showAsAction in the app: namespace, not the android: namespace.
Similarly, when not using the appcompat library, you should be using the android:showAsAction attribute.
Run Code Online (Sandbox Code Playgroud)
我假设appcompat库是支持库.但是我根本不使用它,因为我不需要向后兼容性.
此外,当我切换到应用程序:showAsAction并且我将添加适当的应用程序:xmlns,然后我的操作栏中的操作项不可见.当我切换回android:showAsAction时,图标可见.
我想知道我的代码有什么问题,我应该使用app:showAsAction还是应该使用android:showAsAction?
最好的衣服