【问题标题】:How to show Icon in drop down menu of PopupMenu如何在 PopupMenu 的下拉菜单中显示图标
【发布时间】:2020-08-13 06:55:46
【问题描述】:

我想在我创建的 popupMenu 的下拉菜单中添加一些图标。请帮我。我对如何创建 popupMenu 以在单击时显示带有图标的下拉菜单项感到非常困扰。我尝试了很多没有用的东西。我尝试将 showAsAction 设置为 always|withtext,但没有成功。 请帮我。任何帮助将不胜感激!

下面是Java

showMenuButton = findViewById(R.id.btn_long_press);


        //Init popup menu
        final PopupMenu popupMenu = new PopupMenu(
                this, //the context
                showMenuButton //UI view where to click to show the popup menu
        );

        //add menu xml to our popup menu
        popupMenu.getMenuInflater().inflate(R.menu.pop_menu, popupMenu.getMenu());

        //handle popup menu item clicks
        popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem menuItem) {
                //get id of menu item clicked
                int id = menuItem.getItemId();
                //handle clicks
                if (id==R.id.settings_menu){
                    //settings selected
                    Toast.makeText(MainActivity.this, "Settings Selected", Toast.LENGTH_SHORT).show();
                    startActivity(new Intent(MainActivity.this, Main2Activity.class));
                    getTitleColor();
                    return true;
                }
                else if (id==R.id.manual_menu){
                    //Manual selected
                    Toast.makeText(MainActivity.this, "User Manual Selected", Toast.LENGTH_SHORT).show();
                    startActivity(new Intent(MainActivity.this, Main3Activity.class));
                    return true;
                }
                else if (id==R.id.about_menu){
                    //about selected
                    Toast.makeText(MainActivity.this, "About Selected", Toast.LENGTH_SHORT).show();
                    startActivity(new Intent(MainActivity.this, Main4Activity.class));
                    return true;
                }

                return false;
            }
        });


        //handle button click to show menu
        showMenuButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                popupMenu.show();

            }
        });

这是菜单 XML

<item
        android:id="@+id/settings_menu"
        android:title="Settings"
        android:icon="@drawable/ic_settings"
        app:showAsAction="always|withText" />

    <item
        android:id="@+id/manual_menu"
        android:title="User Manual"
        android:icon="@drawable/ic_developer" />

    <item
        android:id="@+id/about_menu"
        android:title="About"
        android:icon="@drawable/ic_about"/>

【问题讨论】:

    标签: java popupmenu


    【解决方案1】:

    我从研究中发现,显示带有菜单项图标的下拉弹出菜单需要很深的过程。而且过程不干净。 但是,我找到了解决方案。创建子菜单似乎是获得我们想要的东西的唯一途径。我鼓励任何寻求创建菜单图标的人遵循我现在创建的这种方式,同时我们等待谷歌的进一步改进。

    <?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_more"
            android:icon="@android:drawable/ic_menu_more"
            android:orderInCategory="1"
            android:title="More Options »"
            app:showAsAction="always">
    
    
            <menu>
    
                <item
                    android:id="@+id/settings_menu"
                    android:title="Settings"
                    android:icon="@drawable/ic_settings"/>
    
                <item
                    android:id="@+id/manual_menu"
                    android:title="User Manual"
                    android:icon="@drawable/ic_developer" />
    
                <item
                    android:id="@+id/about_menu"
                    android:title="About"
                    android:icon="@drawable/ic_about"/>
    
            </menu>
        </item>
    
    
    </menu>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-16
      • 1970-01-01
      • 1970-01-01
      • 2021-07-04
      • 1970-01-01
      • 1970-01-01
      • 2013-06-05
      • 1970-01-01
      相关资源
      最近更新 更多