这是隐藏ActionBar的好方法吗?

时间:2015-03-18 23:25:28

标签: android android-actionbar

我希望在2秒钟后以编程方式隐藏Android中的操作栏。

如果用户点击屏幕顶部,操作栏可以再次显示。

我环顾四周,发现了各种方法来隐藏使用不同主题的动作栏。

但是,我的方法是这样的:

private void hideActionBar(){
    if(getSupportActionBar().isShowing()){
        getSupportActionBar().hide();
    } else {
        getSupportActionBar().show();
    }
}

结果,有一个动画随着整个屏幕拉动操作栏。

这应该是那样的吗?

2 个答案:

答案 0 :(得分:1)

您可以尝试并禁用这样的隐藏动画:

try
{
  getSupportActionBar().getClass().getDeclaredMethod("setShowHideAnimationEnabled", boolean.class).invoke(getSupportActionBar(), false);
}
catch (Exception exception)
{
  // The animation will still be displayed if an exception was thrown.
}

不幸的是,没有简单的方法来禁用动画,因为它在实现中是硬编码的。

答案 1 :(得分:1)

当我需要隐藏工具栏时,我将其视为另一个视图:

public void setToolbarVisible(boolean visible) {
    mToolbar.setVisibility(visible
        ? View.VISIBLE
        : View.GONE);
}

这没有动画。否则你的代码就完全没了。

编辑:确保ActionBar的父布局中没有android:animateLayoutChanges="true",因为这更可能是动画问题的根源。