19

我正在使用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 文件,但这不会给我完整的平台渗透。

4

1 回答 1

17

我使用覆盖 ActionBar

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

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

于 2012-06-29T21:53:47.743 回答