ActionBar compat 如何禁用ActionBar的显示/隐藏动画

ActionBar compat 如何关闭ActionBar的显示隐藏动画

@Override

    public boolean onCreateOptionsMenu(Menu menu) {

        //消除动画效果

        disableABCShowHideAnimation(getSupportActionBar());

        return super.onCreateOptionsMenu(menu);

    }

 public static void disableABCShowHideAnimation(ActionBar actionBar) {

        try

        {

            actionBar.getClass().getDeclaredMethod("setShowHideAnimationEnabled", boolean.class).invoke(actionBar, false);

        }

        catch (Exception exception)

        {

            try {

                Field mActionBarField = actionBar.getClass().getSuperclass().getDeclaredField("mActionBar");

                mActionBarField.setAccessible(true);

                Object icsActionBar = mActionBarField.get(actionBar);

                Field mShowHideAnimationEnabledField = icsActionBar.getClass().getDeclaredField("mShowHideAnimationEnabled");

                mShowHideAnimationEnabledField.setAccessible(true);

                mShowHideAnimationEnabledField.set(icsActionBar,false);

                Field mCurrentShowAnimField = icsActionBar.getClass().getDeclaredField("mCurrentShowAnim");

                mCurrentShowAnimField.setAccessible(true);

                mCurrentShowAnimField.set(icsActionBar,null);

                //icsActionBar.getClass().getDeclaredMethod("setShowHideAnimationEnabled", boolean.class).invoke(icsActionBar, false);

            }catch (Exception e){

                //....

            }

        }

    }

 

其实在ActionBar的实现中时有setShowHideAnimationEnabled这个方法来控制动画显示的。

但是ActionBar这一抽象类不提供这一功能

转载于:https://www.cnblogs.com/lsjwzh/p/3788343.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值