Android 支持操作栏不显示溢出菜单

标签 android android-actionbar overflow android-support-library

我的 android 应用程序支持 2.2 及更高版本。我正在为操作栏使用 appcompat 支持库,所以它应该只在有不合适的东西时显示。我希望我的操作栏支持溢出按钮(三个垂直方 block ),该按钮在单击时会显示包含其他项目的菜单。

在我的菜单文件中,我设置了三个项目。但是在应用程序上我只看到其中两个,并且溢出按钮也没有显示。

activity_menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:sord.ids_connect="http://schemas.android.com/apk/res-auto">

    <item
        android:id="@+id/action_settings"
        android:icon="@drawable/checkbox"
        android:title="@string/action_settings"
        sord.ids_connect:showAsAction="ifRoom" />

    <item
        android:id="@+id/action_settings2"
        android:icon="@drawable/checkbox_checked"
        android:title="@string/action_settings"
        sord.ids_connect:showAsAction="ifRoom" />

    <item
        android:id="@+id/action_settings3"
        android:icon="@drawable/ic_launcher"
        android:title="@string/action_settings"
        sord.ids_connect:showAsAction="ifRoom" />  

</menu>

java文件

import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;

public class Activity_Menu extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_menu);

        ActionBar actionBar = getSupportActionBar();
        actionBar.setDisplayHomeAsUpEnabled(true);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_menu, menu);
        //return true;
        return super.onCreateOptionsMenu(menu);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case android.R.id.home:
                super.onBackPressed();
                return true;
        }
        return super.onOptionsItemSelected(item);
    }
}

list

    <activity
        android:theme="@style/Theme.AppCompat.Light.DarkActionBar"
        android:name="sord.ids_connect.Activity_Menu"
        android:screenOrientation="portrait"
        android:label="@string/title_activity_menu" >
    </activity>

最佳答案

一般引用

1 - 覆盖 onCreateOption 并展开菜单

注意

返回 true 或调用 super 都无所谓

@Override

public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_menu, menu);
    return super.onCreateOptionsMenu(menu);
}

2 - 将命名空间添加到 menu.xml 文件。

xmlns:**yourapp**="http://schemas.android.com/apk/res-auto"

3 - 将 showAsAction 设置为alwaysifRoom

**yourapp**:showAsAction="ifRoom"

4 - 如果您使用的是 appcompat,请确保您的 Activity 扩展 ActionBarActivity ,您无需更改 ActionBar 的任何值即可在栏中看到您的 menuOption。

最后你会得到类似[记住为你的应用使用一个合适的命名空间]

main.xml

<item
    android:id="@+id/action_settings"
    android:icon="@drawable/ic_action_settings"
    android:title="@string/action_settings"
    yourapp:showAsAction="ifRoom" />

关于你的 Activity

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return super.onCreateOptionsMenu(menu);
}

关于Android 支持操作栏不显示溢出菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20713806/

相关文章:

java - 可以确定要解压缩的文件的大小吗?

android - 导入的 Sqlite 数据库在 Android 中不起作用

java - 操作栏主页按钮不适用于嵌套的 PreferenceScreen

java - Android - onOptionsItemSelected 项目 ID 不匹配

CSS div溢出属性问题

Android WebView 因最新的 Chrome 81.x 更新而崩溃,特别是在 Android 9.x 上

android - Xamarin.Forms如何显示互联网连接状态?

操作栏上的 Android 主页按钮不显示

HTML/CSS -- 省略标志左侧的面包屑

html - overflow-x 的奇怪行为