how to show menu item under overflow icon in andro

2019-05-16 08:11发布

How I can force menu item to show under overflow icon. I am providing app support from api level 8 and above. for now it is showing as actionview . My menuLayout is as follows.

 //main.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_menu_setting"
    android:title="@string/menuItemSetting"
    app:showAsAction="ifRoom"/>
<item
    android:id="@+id/action_signout"
    android:title="@string/menuItemLogout"
    app:showAsAction="ifRoom"/>
 </menu>     

in Java class

 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.main, menu);
    return super.onCreateOptionsMenu(menu);
    }

I have tried with other options of showAsAction but none of them worked. Please suggest me how I can show above two menu itme under overflow icon(when i click on over these two will appearer as actionlist.)

2条回答
家丑人穷心不美
2楼-- · 2019-05-16 08:55

Could you post java code ? Do you have code below in your activity ?

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // TODO Auto-generated method stub
    getMenuInflater().inflate(R.menu.menu, menu);;
    return super.onCreateOptionsMenu(menu);
}

Edit : I alway use code like this(when i click action_settings it will show action list contains setting and bar, i think just replace android:title="@string/action_settings" with android:icon)

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:id="@+id/action_settings"
        android:orderInCategory="100"
        android:showAsAction="always"
        android:title="@string/action_settings">
         <menu>
            <item 
                android:enabled="true" 
                android:visible="true" 
                android:title="setting" 
                android:id="@+id/setting">
            </item>
            <item 
                android:enabled="true" 
                android:visible="true" 
                android:title="B" 
                android:id="@+id/bar">
            </item>
        </menu>
    </item>
     <item
        android:id="@+id/action_settings1"
        android:orderInCategory="100"
        android:showAsAction="always"
        android:title="@string/action_settings"/>
</menu>

Hope it helps

查看更多
做自己的国王
3楼-- · 2019-05-16 09:10

layout for custom action bar

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="?android:attr/actionBarSize"
    android:background="@drawable/header"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/tvActionBarTitle"
        android:layout_width="match_parent"
        android:layout_height="?android:attr/actionBarSize"
        android:gravity="center"
        android:textColor="#FFFFFF"
        android:textSize="30sp" />

    <Button.../>
<!--     your code for button -->
</LinearLayout>

You can call below function in onCreate and define button in this function as I have defined appName text view and its OnClick event

 private void createCutomActionBarTitle()
        {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH)
            {
                this.getActionBar().setHomeButtonEnabled(true);
            }
            this.getActionBar().setDisplayShowCustomEnabled(true);
            this.getActionBar().setDisplayShowTitleEnabled(false);
            this.getActionBar().setBackgroundDrawable(drawable);
            this.getActionBar().setIcon(logo);
            LayoutInflater inflator = LayoutInflater.from(this);
            View v = inflator.inflate(R.layout.custom_action_bar, null);

            ((TextView) v.findViewById(R.id.tvActionBarTitle)).setText(Global.ACTIVITY_NAME);

            this.getActionBar().setCustomView(v);
        }

Hope this will be useful for you :) But clicking physical button of device will not trigger this button you have to look for it, as I don't have any idea about it

查看更多
登录 后发表回答