我已经多次看到这个问题了,但是,这些解决方案都没有帮助我。我的问题是我有一个ActionBar菜单,我希望它的项目始终显示在ActionBar而不是下拉菜单上。
我已尝试过诸如" ifRoom","始终"等操作,并且它们仍然只显示下拉菜单中的文字。
菜单:devotional_fragment_actions.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/action_previous"
android:icon="@drawable/ic_action_previous_item"
android:title="@string/previous_action"
app:showAsAction="always"/>
<item android:id="@+id/action_search"
android:icon="@drawable/ic_action_go_to_today"
android:title="@string/date_action"
app:showAsAction="always"/>
<item android:id="@+id/action_next"
android:icon="@drawable/ic_action_next_item"
android:title="@string/next_action"
app:showAsAction="always"/>
</menu>
在我的片段上,我有:
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
// action bar
inflater.inflate(R.menu.devotional_fragment_actions, menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// handle item selection of action bar
switch (item.getItemId()) {
case R.id.action_search:
showDatePickerDialog();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
菜单工作正常,但没有按我的意愿显示。感谢
答案 0 :(得分:2)
在每个项目中使用android
命名空间而不是app
。您甚至可以删除此命名空间声明xmlns:app="http://schemas.android.com/apk/res-auto"
。
尝试在下面的代码中设置它:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/action_previous"
android:icon="@drawable/ic_action_previous_item"
android:title="@string/previous_action"
android:showAsAction="always"/>
</menu>