簡體   English   中英

溢出菜單的 3 個點未顯示在 ActionBar 中

[英]Overflow menu's 3 dots are not showing up in ActionBar

我是 android 新手,我正在嘗試創建一個溢出菜單。

ActionBar上的 3 個點沒有顯示(即使在更改應用程序主題之后)。 更改應用程序主題后,它顯示在屏幕中央“Android..CoordinatorLayout”如何獲得這三個點?

我的menu_main.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=".MainActivity">

    <item android:id="@+id/action_settings" 
        android:title="@string/action_settings"
        android:orderInCategory="100"
        app:showAsAction="always" />

    <item android:id="@+id/rtfm" 
        android:title="@string/action_settings"
        android:orderInCategory="100"
        app:showAsAction="never" />
</menu>

你應該需要這樣的東西。

res/menu目錄下項目的menu.xml布局。

<?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:id="@+id/action_settings"
        android:title="@string/action_settings"
        app:showAsAction="never" />
    ...
</menu>

然后在您的Activity您必須包含此方法。

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

    return super.onCreateOptionsMenu(menu);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.action_settings:
            // Do something

            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}

您可以在 Activity 的 onCreate 中使用此技巧:

if (savedInstanceState == null) {
    //Show dots:
    try {
        ViewConfiguration config = ViewConfiguration.get(this);
        Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");

        if (menuKeyField != null) {
            menuKeyField.setAccessible(true);
            menuKeyField.setBoolean(config, false);
        }
    } catch (Exception ex) {
        // Ignore
    }

} else {
    //isResumed = true; ............. do something.....
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM