[英]Can't create an options menu in ActionBarSherlock
我正在嘗試在ActionBarSherlock的幫助下在Android 2.3應用程序中實現選項菜單。 但它沒有顯示。這是一個簡單的XML布局文件“breadcrumb_bar_menu”,用於選項菜單:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/inbox"
android:icon="@drawable/topbar_btn_inbox"
android:title= "@string/about" />
<item android:id="@+id/sent"
android:icon="@drawable/topbar_sent"
android:title="@string/about" />
</menu>
這是我從SherlockActivity繼承的活動:
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getSupportMenuInflater();
inflater.inflate(R.menu.breadcrumb_bar_menu, menu);
return true;
}
但我看不到活動上的選項菜單。我做錯了什么?
在菜單xml項的屬性中包含android:showAsAction="ifRoom"
。
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/inbox"
android:showAsAction="ifRoom"
android:icon="@drawable/topbar_btn_inbox"
android:title= "@string/about" />
<item android:id="@+id/sent"
android:showAsAction="ifRoom"
android:icon="@drawable/topbar_sent"
android:title="@string/about" />
</menu>
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
com.actionbarsherlock.view.MenuInflater inflater = getSupportMenuInflater();
inflater.inflate(R.menu.actionoption, menu);
return true;
}
您必須為deivce設置navigationmode。 也是你的設備有硬菜單鍵,如果是,那么你將看不到三個菜單選項點。
您需要告訴系統您將使用菜單:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
使用Actionbarsherlock使optionmenu像其他API> 2.3.3一樣工作我做了以下:
菜單文件:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/navigateMenu"
android:icon="@drawable/icon"
android:title="Menu"
android:orderInCategory:"9"
android:showAsAction="always"
android:titleCondensed="Menu">
<menu>
<item android:id="@+id/id1"
android:icon="@drawable/option1"
android:title="option1" />
<item android:id="@+id/id2"
android:icon="@drawable/option2"
android:title="option2" />
<item android:id="@+id/id3"
android:icon="@drawable/option3"
android:title="option3" />
</menu>
</item>
</menu>
在您的活動代碼中:獲取父MenuItem的引用並使用SHOW_AS_ACTION_ALWAYS屬性將其附加到操作欄請參閱相同的代碼:
活動文件:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.sample_menu, menu);
//To make optionmenu visible on Actionbar for 2.3.3
menu.findItem(R.id.navigateMenu).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS)
return true;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.