Android : Get view Reference to a Menu Item

前端 未结 6 717
醉酒成梦
醉酒成梦 2020-11-27 05:19

I plan to use quick actions UI pattern in my application. Android Quick Actions UI Pattern . The quick action window needs a pivot view to stick to.

    qui         


        
6条回答
  •  自闭症患者
    2020-11-27 05:42

    Universal code which also works on Android 10

    /**
    * pass toolbar and menu item id, i.e. R.id.menu_refresh
    */
    @Nullable
    @Throws(
        IllegalAccessException::class,
        NoSuchFieldException::class
    )
    fun getMenuItemView(toolbar: Toolbar?, @IdRes menuItemId: Int): View? {
        val mMenuView: Field = Toolbar::class.java.getDeclaredField("mMenuView")
        mMenuView.setAccessible(true)
        val menuView: Any? = mMenuView.get(toolbar)
        (menuView as ViewGroup).children.forEach {
            if(it.id == menuItemId) {
                return it
            }
        }
        return null
    }
    

提交回复
热议问题