簡體   English   中英

如何在Android中的MenuItem上顯示圖標以指示子菜單

[英]How to show an icon to indicate a submenu on a MenuItem in Android

我知道這里發布的答案:

菜單中的圖標未在android中顯示

但是,問題仍然存在:當顯示帶有子菜單的彈出菜單時,Google希望我如何指示MenuItem具有“更多”:

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:title="Genres" android:icon="@android:drawable/ic_menu_more">
        <menu xmlns:android="http://schemas.android.com/apk/res/android">
            <item android:id="@+id/genredrama" android:title="Drama" />
            <item android:id="@+id/genrefamily" android:title="Family" />
            <item android:id="@+id/genrehorror" android:title="Horror" />   
        </menu>
   </item>
<item  android:title="All" />
<item android:title="Top Picks" />
<item android:title="Best" />   
</menu>

如何制作圖標:

ic_menu_more

出現在流派MenuItem中? 我知道這是Google的設計決定,但是現在要指出menutItem有子菜單的正確方法是什么?

我認為您必須在商品標簽中設置此屬性:

android:showAsAction="always" //this will force to show menu item

我通過修改此答案中的解決方案找到了解決此問題的方法: https : //stackoverflow.com/a/22668665/3612509

以下代碼根據需要在“流派”菜單旁邊顯示圖標:

PopupMenu popupMenu = new PopupMenu(this, view);
        popupMenu.inflate(R.menu.menu_movies);        

        try{
            Method m = popupMenu.getMenu().getClass().getDeclaredMethod("setOptionalIconsVisible", Boolean.TYPE);
            m.setAccessible(true);
            m.invoke(popupMenu.getMenu(), true);
        }
        catch(NoSuchMethodException e){
            Log.e("DEMO", "onMenuOpened", e);
        }
        catch(Exception e){
            throw new RuntimeException(e);
        }

暫無
暫無

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

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