Custom view for Menu Item

后端 未结 2 1056
南方客
南方客 2020-12-03 01:45

I need to have dynamic Menu Item, a circle of user defined color, like this:

\"enter

2条回答
  •  渐次进展
    2020-12-03 02:00

    What you need to do is create a layout file with the view that you want for the item, the when you declare the item on the menu, assign the layout like this:

    
    

    And that's it!

    EDIT:

    To access the custom item and modify it's color at runtime you can do this.

    In your activity (or fragment) override the onPrepareOptionsMenu (Assuming you already inflated your menu with 'onCreateOptionsMenu')

    @Override
    public boolean onPrepareOptionsMenu(Menu menu) {
    
        //Get a reference to your item by id
        MenuItem item = menu.findItem(R.id.menu_pick_color);
    
        //Here, you get access to the view of your item, in this case, the layout of the item has a FrameLayout as root view but you can change it to whatever you use
        FrameLayout rootView = (FrameLayout)item.getActionView();
    
        //Then you access to your control by finding it in the rootView
        YourControlClass control = (YourControlClass) rootView.findViewById(R.id.control_id);
    
        //And from here you can do whatever you want with your control
    
        return true;
    }
    

提交回复
热议问题