• show drop down menu within/from action bar


    show drop down menu within/from action bar

    show drop down menu within/from action bar

    Solution

    When you want to anchor popupmenu to ActionItem in ActionBar you need to find view that renders ActionItem. Simple find view with findViewById() where id is same as id of your menu item in xml.

    DISPLAYING POPUP

    public boolean onOptionsItemSelected(MenuItem item) {
        // ...
    
        View menuItemView = findViewById(R.id.menu_overflow); // SAME ID AS MENU ID
        PopupMenu popupMenu = new PopupMenu(this, menuItemView); 
        popupMenu.inflate(R.menu.counters_overflow);
        // ...
        popupMenu.show();
        // ...
        return true;
    }
    

    MENU

    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android" >
    
         ....
    
         <item
        android:id="@+id/menu_overflow"
        android:icon="@drawable/ic_overflow"
        android:showAsAction="ifRoom"
        android:title="@string/menu_overflow"/>
    
         ....
    
    </menu>
    

    or you can dynamically genereate the popup menu as this:

    View menuItemView = findViewById(R.id.menu_dropdown); // SAME ID AS MENU ID
    
    PopupMenu popup = new PopupMenu(MainActivity.this, menuItemView);
    
    android.view.Menu menu = popup.getMenu();
    menu.add("test").setOnMenuItemClickListener(new android.view.MenuItem.OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(android.view.MenuItem item) {
                return true;
            }
        });
    }
    
    popup.show();
    

    There are more usage availble here.


    Post by: Jalen Wang (转载请注明出处)

  • 相关阅读:
    幸存者偏差Survivorship Bias
    如何用一月6RMB搭建一个国外服务器
    因果性≠相关性
    三维组态可视化解决方案
    君子生非异也,善假于物也
    机器人制证系统大屏可视化
    C# WPF 嵌入网页版WebGL油田三维可视化监控
    OffscreenCanvas-离屏canvas使用说明
    去掉图片黑背景输出为透明背景
    高清屏下canvas重置尺寸引发的问题
  • 原文地址:https://www.cnblogs.com/jalenwang/p/3400527.html
Copyright © 2020-2023  润新知