Android:setActionView(null)不';t使用ActionView删除菜单项上的视图和宽度问题
我试着用一个动作视图为ActionBar的菜单项设置动画,就像有一个旋转刷新按钮一样。但我有两个问题:Android:setActionView(null)不';t使用ActionView删除菜单项上的视图和宽度问题,android,android-actionbar,Android,Android Actionbar,我试着用一个动作视图为ActionBar的菜单项设置动画,就像有一个旋转刷新按钮一样。但我有两个问题: 当我显示动作视图时,项目的宽度小于MenuItem(参见屏幕截图的第1部分和第2部分) 当我想通过setActionView(null)停止动画并返回默认MenuItem状态时,我的动作视图仍然显示在我的MenuItem中(屏幕截图的第3部分) ActionView布局(R.Layout.menu\u item\u refresh)是: 加载完成后,我调用一个处理程序mAnimatedIte
加载完成后,我调用一个处理程序mAnimatedItem.setActionView(null)如果我正确地理解了您的代码,您可以将动画应用到MenuItem。您可以通过
setActionView(null)
删除ActionView,但menuItem会设置动画
您需要从ActionView获取图像并对其应用动画:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
default:
return super.onOptionsItemSelected(item);
case R.id.Menu_Feed_Refresh:
mAnimatedItem = item;
item.setActionView(R.layout.menu_item_refresh);
ImageView iv = (ImageView) item.getActionView().findViewById(R.id.refresh_image_id);
iv.startAnimation(mAnimation);
load();
return true;
}
}
当您想停止时,请调用
mAnimation.clearAnimation()
。您能解决这个问题吗?
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
default:
return super.onOptionsItemSelected(item);
case R.id.Menu_Feed_Refresh:
mAnimatedItem = item;
item.setActionView(R.layout.menu_item_refresh);
item.startAnimation(mAnimation);
load();
return true;
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
default:
return super.onOptionsItemSelected(item);
case R.id.Menu_Feed_Refresh:
mAnimatedItem = item;
item.setActionView(R.layout.menu_item_refresh);
ImageView iv = (ImageView) item.getActionView().findViewById(R.id.refresh_image_id);
iv.startAnimation(mAnimation);
load();
return true;
}
}