-
Notifications
You must be signed in to change notification settings - Fork 311
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
侧滑回来后,无法打开DrawerLayout #112
Comments
发现是由于侧滑回来后重新onAttachedToWindow导致drawerLayout.mFirstLayout=true,所以目前我个人的解决方法是在执行drawerLayout.openDrawer前执行drawerLayout.requestLayout(),重新将drawerLayout.mFirstLayout置为false,希望有更好的解决方法! |
执行drawerLayout.openDrawer前执行drawerLayout.requestLayout(),重新将drawerLayout.mFirstLayout置为false @reakingf 执行requestlayout() 没有使drawerLayout.mFirstLayout置为false ,需要什么地方特殊处理吗 |
不用啊,其实将mFirstLayout置为false是在onLayout中执行的,requestLayout只是为了触发onLayout |
侧滑后 ,drawerLayout 没有执行onLayout() 方法, 而且侧滑返回执行 protected void onDetachedFromWindow() {
导致 mFirstLayout 这个参数一直为true ,进而导致openDrawer 里打开失败 |
对的啊,就是因为侧滑回来后会重新执行onAttachedToWindow,导致mFirstLayout = true,因此我们在下一次执行openDrawer之前需要让drawerLayout重新执行onLayout。并不是说侧滑后会自动执行onLayout,这是需要我们手动执行的,如调用requestLayout。 |
是这样的,正常调用requestLayout方法都会重新执行onLayout()方法,但是侧滑回来后,不知道是否是 |
@yanchengdeng 不知是你没理解我的意思还是我没理解你的意思。首先侧滑返回DrawerLayout是不会自动执行onlayout的,我的意思是要你在侧滑返回之后,再次重新openDrawer之前,也就是这两个事件之间,手动去调用requestLayout。 |
我也遇到这个问题了,希望作者能提供一个更好的方法解决 |
手机是小米5s,Android API 24
侧滑回来后,无法通过drawerLayout.openDrawer(Gravity.END)这句代码打开抽屉,通过手指侧滑拉出抽屉倒是没问题,但是通过那句代码就只能显示一层半透明的背景
The text was updated successfully, but these errors were encountered: