我希望在2秒钟后以编程方式隐藏Android中的操作栏。
如果用户点击屏幕顶部,操作栏可以再次显示。
我环顾四周,发现了各种方法来隐藏使用不同主题的动作栏。
但是,我的方法是这样的:
private void hideActionBar(){
if(getSupportActionBar().isShowing()){
getSupportActionBar().hide();
} else {
getSupportActionBar().show();
}
}
结果,有一个动画随着整个屏幕拉动操作栏。
这应该是那样的吗?
答案 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"
,因为这更可能是动画问题的根源。