在Android中为菜单项使用app:showAsAction="always"
不会在Action Bar
中显示菜单项。相反,该项目与具有app:showAsAction="never"
的菜单项目一起显示在下拉菜单中。这是代码:
menu_main.xml
<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="myAppID.MainActivity" >
<item android:id="@+id/action_one"
android:title="One"
app:showAsAction="always" />
<item android:id="@+id/action_two"
android:title="Two"
app:showAsAction="never" />
<item android:id="@+id/action_three"
android:title="Three"
app:showAsAction="never" />
</menu>
MainActivity.java
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
其他信息:我没有使用AppCompat
。我注意到使用AppCompat
时,菜单项的行为是正确的。
如何在没有AppCompat
的情况下解决此问题?
答案 0 :(得分:1)
代替app:showAsAction,将其更改为android:showAsAction,如下所示:
<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="myAppID.MainActivity" >
<item android:id="@+id/action_one"
android:title="One"
android:icon="@drawable/your_icon"
android:showAsAction="always" />
<item android:id="@+id/action_two"
android:title="Two"
android:showAsAction="never" />
<item android:id="@+id/action_three"
android:title="Three"
android:showAsAction="never" />
</menu>
希望它能起作用。
答案 1 :(得分:-1)
您可以使用此方法
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}