Android - 菜单溢出图标上的动画

Android - Animation on Menu Overflow Icon

我正在尝试应用 'pulse' 动画来将注意力吸引到我的工具栏中的菜单项;但是,如果隐藏所有菜单项,我找不到将动画应用于溢出图标的方法。

使用 中的代码,我可以获得 ActionMenuView,但它没有任何要应用动画的子项。

//amv.getChildCount() returns 0.

在我的片段中

@Override
public void onPrepareOptionsMenu(Menu menu) {
    super.onPrepareOptionsMenu(menu);
    Toolbar toolbar = getToolbar();
    for (int i = 0; i < toolbar.getChildCount(); i++) {
    View view = toolbar.getChildAt(i);
    if(view.getClass().getSimpleName().equals("ActionMenuView")) {
        ActionMenuView amv = (ActionMenuView) view;
        for (int i1 = 0; i1 < amv.getChildCount(); i1++) {
            amv.getChildAt(i1).startAnimation((AnimationUtils.loadAnimation(getContext(),R.anim.pulse)));
        }
    }
}

menu.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:res="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">

<item
    android:id="@+id/tutorial"
    android:title="@string/tutorial"
    res:showAsAction="never"
    res:actionLayout="@layout/button_info_white"/>

<item
    android:id="@+id/social_filter"
    android:title="@string/social_filter"
    res:showAsAction="never"
    />

</menu>

感谢您的帮助。

由于您的所有项目都没有显示,我认为您可以这样做:

@Override
public void onPrepareOptionsMenu(Menu menu) {
    super.onPrepareOptionsMenu(menu);
    Toolbar toolbar = getToolbar();
    for (int i = 0; i < toolbar.getChildCount(); i++) {
        View view = toolbar.getChildAt(i);
        if (view.getClass().getSimpleName().equals("ActionMenuView")) {
            view.startAnimation((AnimationUtils.loadAnimation(getContext(),R.anim.pulse)));
        }
    }
}

我做了一个非常基本的测试,当所有项目都被隐藏时它工作正常(而且你只有溢出图标)。

请做额外的测试,看看你是否没有任何副作用。