有没有办法使工具栏上默认的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;
}
现在这是至关重要的部分-每当您要为“ 3个verticall点”设置动画时-(您的溢出)您都必须检查可见的孩子-(例如,如果您愿意)实际上忘记了
amv.getChildAt(amv.getChildCount()-1).startAnimation(AnimationUtils.loadAnimation(
MainActivity.this,R.anim.abc_fade_in));
这为您提供了基本的淡入动画-您现在可以拉皮条兜风了。
编辑1:
上面的代码假设您除了向中夸大菜单外,没有向工具栏添加任何内容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;
}
一,你打电话给你的初始化LSOamv
视图可以在任一onCreateOptionsMenu
或者onPrepareOptionsMenu
,我选择了onPrepareOptionsMenu
,因为我想可读性
希望能帮助到你
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句