关闭没有动画的导航抽屉

rec*_*rus 5 android android-layout navigation-drawer

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

protected void closeDrawerImmediate() {
    mDrawerLayout.setVisibility(View.GONE);
    mDrawerLayout.closeDrawers();
    mDrawerLayout.setX(0);
    mDrawerLayout.setVisibility(View.VISIBLE);
}
Run Code Online (Sandbox Code Playgroud)

Tom*_*Tom 7

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

drawerLayout.closeDrawer(Gravity.LEFT, false);
Run Code Online (Sandbox Code Playgroud)

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

如果您想在返回活动时关闭抽屉,我会在closeDrawerOnResume = true适当的地方设置一个有状态的布尔值(例如开始一个新活动),然后检查onResume这个布尔值并关闭抽屉,如果它是真的,则不设置动画。


que*_*ner 0

你可以考虑将动画时间设置为0。但似乎这并不像设置一个属性那么容易。这是教程代码,但需要将源导入DrawerLayout项目ViewDragHelper并进行少量修改。