Обновить анимацию пункта меню в ActionBarSherlock
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
return true;
case R.id.searchIcon:
return true;
case R.id.startRefresh:
refreshItem = item;
refresh();
return true;
case R.id.stopRefresh:
if (refreshItem != null && refreshItem.getActionView() != null) {
refreshItem.getActionView().clearAnimation();
refreshItem.setActionView(null);
}
return true;
default:
return super.onOptionsItemSelected(item);
}
}
public void refresh() {
if (FeedActivity.this != null) {
/*
* Attach a rotating ImageView to the refresh item as an ActionView
*/
LayoutInflater inflater = (LayoutInflater) FeedActivity.this
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
ImageView iv = (ImageView) inflater.inflate(
R.layout.refresh_action_view, null);
Animation rotation = AnimationUtils.loadAnimation(
FeedActivity.this, R.anim.clockwise_refresh);
rotation.setRepeatCount(Animation.INFINITE);
iv.startAnimation(rotation);
refreshItem.setActionView(iv);
}
}
Прежде чем нажать:
После нажатия:
Здесь иконка анимируется (вращается).
Проблема:
почему он смещается влево?
как только он сдвигается влево, значок становится не кликабельным, и странная кнопка возврата устройства также нет работа
РЕДАКТИРОВАТЬ:
В комментариях под этим ответом:
Анимированная иконка для ActionItem
Джейк Уортон говорит, что если вы используете квадратный значок правильного размера для пункта меню, вы не получите такое странное поведение с тем, у кого такая же проблема.
Но я использую изображение 32x32 на устройстве, которое использует рисунки MDPI. Который как заявлено там должен работать :(
Благодарю вас
РЕДАКТИРОВАТЬ:
refresh_action_view.xml
Пользовательский стиль, который я использую в своем приложении
@drawable/ab_solid_My
@drawable/ab_stacked_solid_My
@drawable/ab_bottom_solid_My
@style/My_ProgressBar
@drawable/ab_solid_My
@drawable/ab_stacked_solid_My
@drawable/ab_bottom_solid_My
@style/My_ProgressBar