I'm trying to implement the navigation drawer pattern based on my app. I downloaded the sample code from here and i ran it and 90 % of the times the drawer works ok, but sometimes the drawer gets stuck when i try to open it. I have a way of replicating the situation but it doesn't always work. What i do is:
1- Run the sample code as is.
2- Put your finger on the left edge to get the drawer peek
3- Let go of the finger and press it on the main fragment
4- Try to open the drawer as usual
Sometimes the drawer gets stuck on the peek mode no matter how much you swipe your finger to the right to open the drawer more. Has anyone had / fixed this issue?
I faced a similar issue as mentioned by you. I had a list view inside a relative layout (FILL_PARENT
). Whenever the content in the list view is less and when I dragged in the area outside the list view, the navigation drawer got struck. Setting android:clickable="true"
for the relative layout resolved the problem. Hope this may help.
To clarify on Viji's answer, if you are using something like the navigation drawer example provided:
<!-- A DrawerLayout is intended to be used as the top-level content view using match_parent for both width and height to consume the full space available. -->
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- As the main content view, the view below consumes the entire
space available using match_parent in both dimensions. -->
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<!-- android:layout_gravity="start" tells DrawerLayout to treat
this as a sliding drawer on the left side for left-to-right
languages and on the right side for right-to-left languages.
The drawer is given a fixed width in dp and extends the full height of
the container. A solid background is used for contrast
with the content view. -->
<ListView
android:id="@+id/left_drawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:choiceMode="singleChoice"
android:divider="@android:color/transparent"
android:dividerHeight="0dp"
android:background="#111"/>
</android.support.v4.widget.DrawerLayout>
Adding android:clickable="true"
to the FrameLayout seems to fix the problem.