Android 这是隐藏我的ActionBar的好方法吗?
我想在过了2秒钟后,通过编程在Android中隐藏我的操作栏 如果用户点击屏幕顶部,操作栏会再次显示 我环顾四周,找到了各种方法来隐藏使用不同主题的动作栏 但是,我的方法是这样的:Android 这是隐藏我的ActionBar的好方法吗?,android,android-actionbar,Android,Android Actionbar,我想在过了2秒钟后,通过编程在Android中隐藏我的操作栏 如果用户点击屏幕顶部,操作栏会再次显示 我环顾四周,找到了各种方法来隐藏使用不同主题的动作栏 但是,我的方法是这样的: private void hideActionBar(){ if(getSupportActionBar().isShowing()){ getSupportActionBar().hide(); } else { getSupportActionBar().show(
private void hideActionBar(){
if(getSupportActionBar().isShowing()){
getSupportActionBar().hide();
} else {
getSupportActionBar().show();
}
}
try
{
getSupportActionBar().getClass().getDeclaredMethod("setShowHideAnimationEnabled", boolean.class).invoke(getSupportActionBar(), false);
}
catch (Exception exception)
{
// The animation will still be displayed if an exception was thrown.
}
因此,会有一个动画沿着整个屏幕向上拉动动作栏
这应该是这样工作的吗?您可以尝试如下方式禁用隐藏动画:
private void hideActionBar(){
if(getSupportActionBar().isShowing()){
getSupportActionBar().hide();
} else {
getSupportActionBar().show();
}
}
try
{
getSupportActionBar().getClass().getDeclaredMethod("setShowHideAnimationEnabled", boolean.class).invoke(getSupportActionBar(), false);
}
catch (Exception exception)
{
// The animation will still be displayed if an exception was thrown.
}
不幸的是,由于动画是在实现中硬编码的,因此没有简单的方法来禁用动画。当我需要隐藏工具栏时,我将其视为另一个视图:
public void setToolbarVisible(boolean visible) {
mToolbar.setVisibility(visible
? View.VISIBLE
: View.GONE);
}
这个没有动画。否则,您的代码将非常好
编辑:确保ActionBar的父布局中没有android:animateLayoutChanges=“true”,因为这很可能是动画问题的根源