Different look/style for specific menu item on ActionBar

后端 未结 1 1620
生来不讨喜
生来不讨喜 2020-12-09 22:42

On my Android application I am customizing the ActionBar following tips from the android developer blog and other places. I would like to be able to highlight a specific men

相关标签:
1条回答
  • 2020-12-09 23:27

    So I got this to work now with a bit of a trick to it. Here goes the fragment code

    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        super.onCreateOptionsMenu(menu, inflater);
    
        menuItemCreateCart = menu.findItem(R.id.menuItemCreateCart);
        if (menuItemCreateCart  == null) {
            menuItemCreateCart  = menu.add(0, R.id.menuItemCreateCart, 0, R.string.Create);
        }
    
        TextView tv = new TextView(getActivity());
        tv.setText(R.string.Create);
        tv.setTextColor(getResources().getColor(R.color.green));
        tv.setBackgroundColor(getResources().getColor(R.color.lightBlue));
        tv.setOnClickListener(
                new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        createCart();
                    }
                }
        );
        menuItemCreateCart.setActionView(tv);
    

    The main gotcha is that the onclicklistener has to be set on the view that you set as action view and not the menu item for it to work. This way you can do whatever you like.

    Also note that you can NOT use getActionView to retrieve the originally set view with title because it will return null. It seem to be more of an alternative view than the actual view for default menu items..

    0 讨论(0)
提交回复
热议问题