2015-03-18 62 views
1

我想以編程方式在Android中一次2秒後隱藏我的操作欄。這是隱藏我的ActionBar的好方法嗎?

如果用戶點擊屏幕的頂部,則操作欄會再次顯示。

我環顧四周,發現了各種方法來隱藏使用不同主題的動作欄。

然而,我的方法是這樣的:

private void hideActionBar(){ 
    if(getSupportActionBar().isShowing()){ 
     getSupportActionBar().hide(); 
    } else { 
     getSupportActionBar().show(); 
    } 
} 

其結果是,有一個動畫與整個屏幕一起拉起操作杆。

這是應該這樣工作嗎?

回答

1

當我需要隱藏工具欄我把它當作另一種觀點:

public void setToolbarVisible(boolean visible) { 
    mToolbar.setVisibility(visible 
     ? View.VISIBLE 
     : View.GONE); 
} 

這有沒有動畫。否則,你的代碼非常好。

編輯:確保您的ActionBar的父級佈局中沒有android:animateLayoutChanges="true",因爲這可能更有可能是動畫問題的根源。

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. 
} 

不幸的是禁用的動畫,因爲它是硬編碼在實施沒有簡單的方法。

+0

好的,謝謝你的提示! – wayway 2015-03-18 23:48:28