问题
Despite there are some icons associated with certain action and have no enough space in the Actionbar
, they appear in the optionsMenu
instead of appearing in the overflow
icon.
I am inflating the actionBar
with five icons each one has a specific functionality "Please refer to the XML file below", the items which have the android:showAsAction=never
I expect them to implicitly reside inside the overflow
icon on the actionBar
, but when I run the App, any item with the property android:showAsAction=never
instead it appears in the optionsMenu
. Why that happens? and I hope i explained the problem clearly.
Update:
Simply, I want, if there is no space for the icon to be placed on the ActionBar
, They should be placed inside the overflow
icon as shown in the image " the icon with three vertical dots over each other".
To Note:
I am using Galaxy Note3
![](https://www.eimg.top/images/2020/03/21/3ab7162c8f51a56b3c03dd4571c75e75.jpg)
Why my question is marked as a duplicate. The question suggested as a duplicate is different than mine? Please review the question again.
Java_Code:
public class ActionBarActivityTest00 extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_action_bar_activity_test00);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.action_bar_activity_test00, menu);
return super.onCreateOptionsMenu(menu);
}
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="com.example.actionbaractivitytest.ActionBarActivityTest00" >
<!-- Search / will display always -->
<item android:id="@+id/action_search"
android:icon="@drawable/ic_action_search"
android:title="action_search"
android:showAsAction="ifRoom"/>
<!-- Location Found -->
<item android:id="@+id/action_location_found"
android:icon="@drawable/ic_action_location_found"
android:title="action_location_found"
android:showAsAction="ifRoom" />
<!-- Refresh -->
<item android:id="@+id/action_refresh"
android:icon="@drawable/ic_action_refresh"
android:title="action_refresh"
android:showAsAction="ifRoom" />
<!-- Help -->
<item android:id="@+id/action_help"
android:icon="@drawable/ic_launcher"
android:title="action_help"
android:showAsAction="never"/>
<!-- Check updates -->
<item android:id="@+id/action_check_updates"
android:icon="@drawable/ic_action_refresh"
android:title="action_check_updates"
android:showAsAction="never" />
回答1:
Add below property in showasaction=never All menu items
android:orderInCategory="2"
thats it..it will shown in overflow men.. Changes My Sample Code for your scenario and it works fine in my app
<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="com.example.demo.MainActivity" >
<item
android:id="@+id/action_settings1"
android:orderInCategory="100"
android:title="@string/action_settings"
app:showAsAction="ifRoom"/>
<item
android:id="@+id/action_settings2"
android:orderInCategory="100"
android:title="@string/action_settings"
app:showAsAction="ifRoom"/>
<item
android:id="@+id/action_settings3"
android:orderInCategory="100"
android:title="@string/action_settings"
app:showAsAction="ifRoom"/>
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:title="@string/action_settings"
app:showAsAction="never"/>
<item
android:id="@+id/action_settings5"
android:orderInCategory="100"
android:title="@string/action_settings"
app:showAsAction="never"/>
回答2:
Try this:
<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="com.example.fafad.MainActivity" >
<!-- Search / will display always -->
<item android:id="@+id/action_search"
android:icon="@drawable/ic_action_search"
android:title="action_search"
android:orderInCategory="1"
app:showAsAction="ifRoom"/>
<!-- Location Found -->
<item android:id="@+id/action_location_found"
android:orderInCategory="2"
android:icon="@drawable/ic_action_location_found"
android:title="action_location_found"
app:showAsAction="ifRoom" />
<!-- Refresh -->
<item android:id="@+id/action_refresh"
android:icon="@drawable/ic_action_refresh"
android:orderInCategory="3"
android:title="action_refresh"
app:showAsAction="ifRoom" />
<!-- Help -->
<item android:id="@+id/action_help"
android:icon="@drawable/ic_launcher"
android:orderInCategory="4"
android:title="action_help"
android:showAsAction="never"/>
<!-- Check updates -->
<item android:id="@+id/action_check_updates"
android:icon="@drawable/ic_action_refresh"
android:orderInCategory="5"
android:title="action_check_updates"
app:showAsAction="never" />
</menu>
来源:https://stackoverflow.com/questions/24286112/why-the-menu-items-appear-on-the-optionsmenu