2015-05-08 287 views
5

我想在沒有滑動動畫的情況下立即完成某些活動後關閉導航抽屜。我不會在活動開始時關閉它,因爲如果用戶退出活動,我希望它保持打開狀態。但是,如果沒有短暫的閃爍動畫,我無法關閉它,因爲它會自動關閉。我曾嘗試下面的代碼的變化:關閉導航抽屜沒有動畫

protected void closeDrawerImmediate() { 
    mDrawerLayout.setVisibility(View.GONE); 
    mDrawerLayout.closeDrawers(); 
    mDrawerLayout.setX(0); 
    mDrawerLayout.setVisibility(View.VISIBLE); 
} 
+0

關閉onPause()會發生什麼? – zgc7009

回答

0

你可以考慮動畫時間設置爲0,但現在看來,這並不像一個設置屬性一樣簡單。這裏是tutorialcode,但它需要將DrawerLayoutViewDragHelper的源導入項目並在那裏進行小的修改。

3

您可以使用在支持庫V24新DrawerLayout.closeDrawer(int/View, bool)方法立即關閉抽屜:

drawerLayout.closeDrawer(Gravity.LEFT, false); 

如果你只是想立即關閉抽屜,這樣當你推出一項活動作爲點擊抽屜項目,這可能就足夠了。

如果你想關閉抽屜回到活動,我會設置一個有狀態的布爾值,如closeDrawerOnResume = true(例如,開始一個新的活動),然後在onResume檢查此布爾值並關閉抽屜沒有動畫如果是真的。