我正在使用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文件来定义他的动画,但这不会给我带来完整的平台渗透力。
我使用叠加式ActionBar
requestWindowFeature(com.actionbarsherlock.view.Window.FEATURE_ACTION_BAR_OVERLAY);
调用show()/ 时,它不显示动画hide()。
show()
hide()