Tha*_*man 5 android android-appcompat android-menu android-toolbar
有没有办法在工具栏上设置默认的3垂直点菜单图标的动画?
我使用工具栏作为标准代码的操作栏:
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
Run Code Online (Sandbox Code Playgroud)
我也使用onCreateOptionsMenu
内部活动的方法,我膨胀我的menu.xml
文件,但我不知道如何获得更多控制自动创建的溢出图标.我最感兴趣的是如何引用菜单图标所以我可以为它设置动画.我不关心动画类型.它可以是一个简单的旋转动画
View
好吧,你专门玩这个,ActionMenuView
所以试试这个,将代码复制到你的Activity
//we declare our objects globally
Toolbar tool; ActionMenuView amv;
Run Code Online (Sandbox Code Playgroud)
然后覆盖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;
}
Run Code Online (Sandbox Code Playgroud)
现在这是关键的部分 - 每当你想要动画“ 3 个垂直点” - (你的溢出)你必须检查可见的孩子 - (即如果你想)实际上忘记了
amv.getChildAt(amv.getChildCount()-1).startAnimation(AnimationUtils.loadAnimation(
MainActivity.this,R.anim.abc_fade_in));
Run Code Online (Sandbox Code Playgroud)
这为您提供了基本的淡入动画 - 您现在可以为您的旅程提供便利。
编辑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;
}
Run Code Online (Sandbox Code Playgroud)
您调用视图初始化的地方也可以amv
是onCreateOptionsMenu
或onPrepareOptionsMenu
,我选择是onPrepareOptionsMenu
因为我想要可读性
希望能帮助到你
归档时间: |
|
查看次数: |
1953 次 |
最近记录: |