嗨,我正在实现动作栏上刷新图标的旋转动画。当我在较新的api上运行我的应用程序时,一切正常。但是例如当我在api 8上运行时,setActionView出现问题。请帮忙。

public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case R.id.action_refresh:

            item.setActionView(getAnimation());

            getCurrency(code,null);
            mViewpager.setVisibility(View.INVISIBLE);
            Log.i("TAG", "refresh pressed =>");
            return true;
        }

        // Handle your other action bar items...

        return super.onOptionsItemSelected(item);
    }


getAnimation方法

public View getAnimation(){
        LayoutInflater inflater1 = (LayoutInflater) getActivity().getApplication()
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                ImageView iv = (ImageView) inflater1.inflate(R.layout.action_refresh,
                null);
                Animation rotation = AnimationUtils.loadAnimation(getActivity().getApplicationContext(),
                        R.anim.refresh_rotate);
                rotation.setRepeatCount(Animation.INFINITE);
                iv.startAnimation(rotation);
                return iv;
    }

最佳答案

我不太确定您的问题是什么,但似乎您正在使用的API在8级上不可用。

更改此:

item.setActionView(getAnimation());


对此:

MenuItemCompat.setActionView(item,getAnimation());

10-08 14:54