日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android menu item属性,menuitem - Android 4.3菜单项showAsAction =“always”被忽略

發布時間:2024/10/8 Android 57 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android menu item属性,menuitem - Android 4.3菜单项showAsAction =“always”被忽略 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

menuitem - Android 4.3菜單項showAsAction =“always”被忽略

我使用從Android 4.3(API級別18)開始提供的新v7 appcompat庫。

無論showAsAction中為菜單項指定了什么,它都沒有顯示 - 它總是創建溢出菜單圖標,甚至在菜單下放置一個菜單項。

試圖將菜單添加到這樣的活動:

@Override

public boolean onCreateOptionsMenu(Menu menu) {

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

return true;

}

這是我的菜單xml:

android:title="@string/menu_add_item"

android:orderInCategory="10"

android:showAsAction="always"

android:icon="@android:drawable/ic_menu_add" />

它是新支持庫v7的錯誤,還是代碼有問題?我以前多次使用與ActionBarSherlock類似的代碼。

13個解決方案

309 votes

您可能缺少必需的命名空間:

xmlns:[yourapp]="http://schemas.android.com/apk/res-auto">

android:title="@string/menu_add_item"

android:orderInCategory="10"

[yourapp]:showAsAction="always"

android:icon="@android:drawable/ic_menu_add" />

將ActionBarActivity替換為您的應用名稱或您心所欲望的任何命名空間。

其他值得檢查的事情:

查看您的活動類是否擴展為ActionBarActivity

檢查問題是否仍然存在。

Android參考文檔:添加動作按鈕。 以下是相關文字:

如果您的應用程序使用支持庫以獲得與Android 2.1一樣低的版本的兼容性,那么android:namespace中不提供showAsAction屬性。 相反,此屬性由支持庫提供,您必須定義自己的XML命名空間并將該命名空間用作屬性前綴。 (自定義XML命名空間應該基于您的應用程序名稱,但它可以是您想要的任何名稱,并且只能在您聲明它的文件范圍內訪問。)

Nikola Despotoski answered 2019-07-05T15:13:09Z

52 votes

弄清楚自己。 使用支持庫v7,showAsAction應該在這樣的自定義命名空間下:

xmlns:balloonberry="http://schemas.android.com/apk/res-auto">

android:title="@string/menu_add_item"

android:orderInCategory="10"

balloonberry:showAsAction="always"

android:icon="@android:drawable/ic_menu_add" />

Mcingwe answered 2019-07-05T15:13:36Z

28 votes

還要確保在ActionBarActivity.onCreateOptionsMenu()方法中使用正確的inflater。

正確的解決方案:

MenuInflater menuInflater = getMenuInflater();

menuInflater.inflate(R.menu.menu_example, menu);

解決方案不正確:

MenuInflater menuInflater = new MenuInflater(this);

menuInflater.inflate(R.menu.menu_example, menu);

petrnohejl answered 2019-07-05T15:14:20Z

24 votes

對于碎片

具有自定義命名空間的菜單將阻止showAsAction顯示。

使用" android:" showAsAction的前綴將起作用,即使Android Studio會注意到您應該使用自定義名稱空間。

android:title="Add Checkin"

android:orderInCategory="10"

android:showAsAction="always"

android:icon="@android:drawable/ic_menu_add"/>

這是使用Android SDK 22和支持v4片段,以防萬一。

Baker answered 2019-07-05T15:15:11Z

16 votes

有同樣的問題,但在Android 5.我有3個項目,但操作系統忽略了我的屬性"總是" 并只顯示了2個項目。 我的解決方案:

@Override

public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {

Log.d(TAG, "onCreateOptionsMenu()");

inflater.inflate(R.menu.your_menu, menu);

for (int j = 0; j < menu.size(); j++) {

MenuItem item = menu.getItem(j);

Log.d(TAG, "set flag for " + item.getTitle());

item.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_ALWAYS);

}

}

Lukas answered 2019-07-05T15:15:38Z

6 votes

還要確保您具有命名空間的正確路徑。 如果錯誤,它不會給你一個錯誤信息。

我有

xmlns:myapp="http://schemas.android.com/res-auto">

代替

xmlns:myapp="http://schemas.android.com/apk/res-auto">

我所知道的只是它不起作用。 不知道我是如何設法忘記路徑的/ apk部分,但它發生了。 沒有錯誤消息,只是一個難以捉摸的錯誤追蹤。

BeccaP answered 2019-07-05T15:16:20Z

6 votes

在我的情況下,我不得不從我的應用程序的build.gradle編譯中刪除com.android.support:appcompat-v7:21.0.3&#39;。

注意:我的min sdk = 14,由android studio創建的項目插入了我不必要的依賴。

在這個替換之后你可以寫?機器人:showAsAction=&#34;總是&#34;

Anton Kizema answered 2019-07-05T15:17:02Z

4 votes

這可能不是你的情況,但我正在使用

new MenuInflater(this).inflate(R.menu.my_menu, menu);

改變它

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

解決了這個問題!

Bakhshi answered 2019-07-05T15:18:08Z

0 votes

xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:app="http://schemas.android.com/apk/res-auto"

>

android:id="@id/back"

android:icon="@drawable/back"

app:showAsAction="always"

android:title="@string/back"/>

android:id="@id/save"

android:icon="@drawable/le_top_btn_icon_add"

app:showAsAction="ifRoom"

android:title="@string/save"/>

不工作,? with supportLibraryVersion =&#39; 25.1.0&#39;compileSdkVersion = 25

看到&#34;警告&#34;

應該使用帶有appcompat庫的app:showAsActionxmlns:app =&#34; [http://schemas.android.com/apk/res-auto"] less ...(Ctrl + F1)

使用appcompat庫時,菜單資源應引用app:namespace中的showAsAction,不是android:名稱空間。

同樣,當不使用appcompat庫時,你應該使用android:showAsAction屬性。

我認為警告可以被忽視。

Bill answered 2019-07-05T15:19:17Z

0 votes

像showAsAction和actionViewClass一樣添加這樣的自定義命名空間:

xmlns:app="http://schemas.android.com/apk/res-auto">

android:title="@string/search"

android:icon="@drawable/ic_search"

app:showAsAction="collapseActionView|ifRoom"

app:actionViewClass="android.widget.SearchView" />

Amirouche Zeggagh answered 2019-07-05T15:19:44Z

0 votes

最簡單的方法是:

xmlns:myapp="http://schemas.android.com/apk/res-auto">

android:id="@+id/history"

android:icon="@drawable/icons8_history_white_medium"

android:title="History"

myapp:showAsAction="always" />

android:id="@+id/synchrnonize"

android:icon="@drawable/icons8_synchronize_white_medium"

android:title="Synchronize"

myapp:showAsAction="always" />

Pawe? answered 2019-07-05T15:20:07Z

0 votes

我通過替換解決了它

android:showAsAction="ifRoom"

app:showAsAction="ifRoom"

這就是menuitme xml的樣子,

android:title="Refresh"

android:icon="@drawable/refresh2"

app:showAsAction="ifRoom" />

Haris answered 2019-07-05T15:20:52Z

0 votes

最簡單的方法是通過添加修改您的代碼

xmlns:app="http://schemas.android.com/apk/res-auto"

并更改此代碼

android:showAsAction="always"

app:showAsAction="always"

最后

xmlns:app="http://schemas.android.com/apk/res-auto">

android:title="@string/menu_add_item"

android:orderInCategory="10"

app:showAsAction="always"

android:icon="@android:drawable/ic_menu_add" />

Abdulhakim Zeinu answered 2019-07-05T15:21:38Z

總結

以上是生活随笔為你收集整理的android menu item属性,menuitem - Android 4.3菜单项showAsAction =“always”被忽略的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。