动作栏或动作栏手锁 - 平滑隐藏/显示动作栏

我正在使用ActionBarSherlock,并尝试隐藏/显示全屏图像的ActionBar,使用:

getSupportActionBar.hide();

getSupportActionBar.show();

但它真的很跳跃和尴尬。有没有办法使它更流畅,或者应用平移/不透明度动画?

在进一步检查ABS源并通过观察其行为时,它似乎至少定义了最少量的动画。对于标准的ActionBar来说,情况并非如此。

为了完整起见,以下是我从ImageView.click调用的相关代码:

if( shouldRender )
{
  . . .

  getSupportActionBar().hide();

  getWindow().addFlags( WindowManager.LayoutParams.FLAG_FULLSCREEN );
}
else
{
  . . .

  getSupportActionBar().show();

  getWindow().clearFlags( WindowManager.LayoutParams.FLAG_FULLSCREEN );
}

值得注意的是,标志设置/清除也会导致跳跃,但跳跃不那么明显,所以我打算稍后解决它,如果有的话。

编辑:(由ABS的创建者)似乎表明这在本机ActionBar上是不可能的。我想我可以编辑定义他的动画的两个XML文件,但这不会给我带来完整的平台渗透。


答案 1

我使用叠加操作栏

 requestWindowFeature(com.actionbarsherlock.view.Window.FEATURE_ACTION_BAR_OVERL‌​AY);

当调用 / 时,它不会显示动画。show()hide()


答案 2

推荐