关闭没有动画的导航抽屉

时间:2015-05-08 18:28:13

标签: android android-layout navigation-drawer

我在完成某些活动后立即尝试关闭导航抽屉,没有滑动动画。我不会在活动开始时关闭它,因为如果用户退出活动,我希望它保持打开状态。但是,如果没有一个简短的闪烁动画,我无法让它关闭,因为它关闭了自己。我尝试过以下代码的变体:

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

2 个答案:

答案 0 :(得分:3)

您可以使用支持库v24中的新DrawerLayout.closeDrawer(int/View, bool)方法立即关闭抽屉:

drawerLayout.closeDrawer(Gravity.LEFT, false);

如果您只是想立即关闭抽屉,例如当您通过点击抽屉项目启动活动时,这可能就足够了。

如果你想在回到活动时关闭抽屉,我会在适当的地方设置一个像closeDrawerOnResume = true这样的有状态布尔值(例如,开始一个新的活动),然后在{{1检查此布尔值并关闭抽屉而不设置动​​画,如果它是真的。

答案 1 :(得分:0)

您可以考虑将动画时间设置为0.但似乎并不像设置一个属性那么容易。以下是tutorialcode,但需要将DrawerLayoutViewDragHelper的来源导入到项目中并进行小修改。