Как оживить значок меню переполнения панели инструментов

Есть ли способ анимировать значок меню по умолчанию с 3 вертикальными пунктами на панели инструментов?

Я использую панель инструментов как панель действий со стандартным кодом:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); 

И я также использую метод onCreateOptionsMenu внутри действия, где я раздуваю файл menu.xml но я не знаю, как получить больше контроля над значком переполнения, который создается автоматически. Меня больше всего интересует, как ссылаться на значок меню. Поэтому я могу его анимировать. Меня не волнует тип анимации. Это может быть простая анимация вращения

Ну, вы играете с View специально ActionMenuView поэтому попробуйте это, скопируйте коды в свою Activity

 //we declare our objects globally Toolbar tool; ActionMenuView amv; 

Затем переопределите onPrepareOptionsMenu , то, что вы решили return – это ваш выбор

 @Override public boolean onPrepareOptionsMenu(Menu menu) { //to be safe you can check if children are greater than 1 amv = (ActionMenuView) tool.getChildAt(1);//hope you've met amv return true; } 

Теперь это ключевая часть – всякий раз, когда вы хотите анимировать « три вертикулярных точки » – (ваш переполнение), вы должны проверять видимых детей (т.е. если хотите) на самом деле забыть, что

 amv.getChildAt(amv.getChildCount()-1).startAnimation(AnimationUtils.loadAnimation( MainActivity.this,R.anim.abc_fade_in)); 

Что дает вам базовую анимацию затухания – вы можете сушить свою поездку сейчас.

EDIT 1 :

В приведенном выше коде были сделаны предположения, что вы ничего не добавили в панель инструментов, кроме как просто onCreateOptionsMenu меню в onCreateOptionsMenu .

Предположим, что у вас есть сложная ToolBar инструментов, это скорее для вашей инициализации

 @Override public boolean onPrepareOptionsMenu(Menu menu) { for(int i =0; i < tool.getChildCount(); ++i){ if(tool.getChildAt(i).getClass().getSimpleName().equals("ActionMenuView")){ amv = (ActionMenuView) tool.getChildAt(i); break; } } return true; } 

Lso, где вы называете свою инициализацию amv View, может быть либо в onCreateOptionsMenu либо в onPrepareOptionsMenu , я выбрал onPrepareOptionsMenu потому что мне нужна читаемость

Надеюсь, поможет