[英]Why can't I click my action bar menu item when using actionLayout property?
Why does my menu item become unclickable if I use the actionLayout property in menu_main.xml? 如果在menu_main.xml中使用actionLayout属性,为什么菜单项变得不可点击? onOptionsItemSelected() is never called.
从不调用onOptionsItemSelected()。 How can I correct this issue?
我该如何解决这个问题?
menu_main.xml: menu_main.xml:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu_mail"
android:title="@string/menuMailTitle"
android:actionLayout="@layout/icon_mail"
android:icon="@drawable/icons_mail"
android:showAsAction="always" />
</menu>
onCreateOptionsMenu(): onCreateOptionsMenu():
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
MenuItemCompat.setShowAsAction(menu.findItem(R.id.menu_mail), MenuItem.SHOW_AS_ACTION_ALWAYS);
return true;
}
It should be used like so: 应该这样使用:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_mail, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.icons_mail:
break;
default:
return super.onOptionsItemSelected(item);
}
return true;
}
Change your menu from: 从以下菜单中更改:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu_mail"
android:title="@string/menuMailTitle"
android:actionLayout="@layout/icon_mail"
android:icon="@drawable/icons_mail"
android:showAsAction="always" />
</menu>
to 至
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/menu_mail"
android:title="@string/menuMailTitle"
app:actionLayout="@layout/icon_mail"
android:icon="@drawable/icons_mail"
app:showAsAction="always" />
</menu>
Notice the use of the "app"lication specific namespace. 注意使用“ app”许可特定名称空间。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.