溢出菜单图标不可见...

时间:2017-03-06 12:24:02

标签: android

我将工具栏添加到线性布局我创建了一个工具栏而不使用xml.Everything工作正常但我无法添加溢出菜单.Overflow图标未显示

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/main_lnrLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    tools:context="com.smartify.customizetoolbardemo.MainActivity"
    android:orientation="vertical"
    >

   <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/lnrlayout_toolbar"
        android:orientation="vertical">
  </LinearLayout>


</LinearLayout>

3 个答案:

答案 0 :(得分:0)

在工具栏中添加菜单

<?xml version="1.0" encoding="utf-8"?>
<menu
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <item android:title="Settings"
        android:id="@+id/action_settings"
        />
</menu>

给你增加菜单

public boolean onCreateOptionsMenu(Menu menu) {

        getMenuInflater().inflate(R.menu.action_menu, menu);
        return true;
    }

然后你会得到溢出菜单的图标。

答案 1 :(得分:0)

lnrlayout_toolbar

中添加一个按钮或任何视图
Button btn=(Button)findViewById(R.id.btn_menu);
showPopupMenu(btn);

并在下面调用显示叠加菜单的方法

public void showPopupMenu(View v){
PopupMenu popup = new PopupMenu(this, v);
    MenuInflater inflater = popup.getMenuInflater();
    inflater.inflate(R.menu.sub_menu, popup.getMenu());
    popup.show();
}

是sub_menu 是您要显示的菜单文件..

答案 2 :(得分:0)

试试这个

菜单项的XML代码 在res&gt;&gt; menu&gt;&gt; menu_optipn.xml

中创建菜单资源

<item android:id="@+id/new_game"
    android:icon="@mipmap/ic_launcher"
    android:title="item1"
    />
<item android:id="@+id/help"
    android:icon="@mipmap/ic_launcher"
    android:title="item2"
    android:orderInCategory="0"
    />

MainActivity.Java

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

 @Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle item selection
    switch (item.getItemId()) {
        case R.id.new_game:
            Toast.makeText(this, "Item 1 is selected", Toast.LENGTH_SHORT).show();
            return true;
        case R.id.help:
            Toast.makeText(this, "Item 2 is selected", Toast.LENGTH_SHORT).show();
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}