我一直在寻找适合我问题的解决方案,但我似乎找不到一个.我有一个ActionBar(ActionBarSherlock),其菜单从XML文件中膨胀,该菜单包含一个项目,并且该项目显示为ActionItem.
菜单:
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/menu_refresh"
android:icon="@drawable/ic_menu_refresh"
android:showAsAction="ifRoom"
android:title="Refresh"/>
</menu>
Run Code Online (Sandbox Code Playgroud)
活动:
[...]
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getSupportMenuInflater().inflate(R.menu.mymenu, menu);
return true;
}
[...]
Run Code Online (Sandbox Code Playgroud)
ActionItem显示时带有图标而没有文本,但是当用户点击ActionItem时,我希望图标开始动画,更具体地说,是在适当的位置旋转.有问题的图标是刷新图标.
我意识到ActionBar支持使用自定义视图(添加动作视图)但是这个自定义视图被扩展为覆盖ActionBar的整个区域并且实际上阻止了除应用程序图标之外的所有内容,在我的情况下这不是我想要的.
所以我的下一次尝试是尝试使用AnimationDrawable并逐帧定义我的动画,将drawable设置为菜单项的图标,然后在onOptionsItemSelected(MenuItem item)获取图标并开始使用动画((AnimationDrawable)item.getIcon()).start().但这并不成功.有谁知道有任何方法来实现这种效果?
我在蜂窝+操作栏中使用自定义操作按钮时遇到了一些麻烦.我正在添加一个使用自定义布局的菜单项(使用android:actionLayout属性).自定义布局的原因是我想要一个具有两行文本的按钮,可以动态更新.
但是,我仍然希望此操作按钮像其他标准按钮一样操作.我的意思是,当按钮被选中时,背景渐渐淡出,如果未被选中,则会再次淡出,所有这些都是平台的风格(不同平台/设备之间的颜色似乎不同 - 我看到灰色和蓝色版本)
我尝试使用自定义布局的操作按钮样式:
style="@android:style/Widget.ActionButton"
Run Code Online (Sandbox Code Playgroud)
我已经尝试将自定义布局的背景设置为:
android:background="?android:attr/actionBarItemBackground"
Run Code Online (Sandbox Code Playgroud)
但无济于事,我有点随意地尝试,因为我找不到任何关于如何做到这一点的文件(或者甚至可能确实如此).
我知道我可以通过设置背景来自己估计这种行为,但是如果我可以将项目设置为在用户与其交互时的显示方式上表现得像普通操作按钮那样会很好.
有人有主意吗?
提前致谢!