Tyl*_*aff 16

你现在可以这样做,

getSupportActionBar().setShowHideAnimationEnabled(false);
Run Code Online (Sandbox Code Playgroud)

  • 它对我不起作用,直到我在显示和隐藏之前将其放置...谢谢 (5认同)

小智 11

我使用以下方法修复:

public static void disableShowHideAnimation(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);
        }catch (Exception e){
            //....
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

  • @MilošČernilovský使用Android是一个坏主意.它充满了错误和局限.但我仍然喜欢破解操作系统的黑客攻击,而不是从头开始实现 (5认同)