2013-08-04 2 views
12

Я пытаюсь реализовать шаблон ящика навигации на основе моего приложения. Я загрузил образец кода с here, и я запустил его и 90% времени, когда ящик работает нормально, но иногда ящик застревает, когда я пытаюсь его открыть. У меня есть способ воспроизвести ситуацию, но она не всегда работает. Что я делаю:Ошибка Android Drawer с использованием образца

1- Запустите образец кода как есть.
-Положите палец на левый край, чтобы получить Выдвижной ящик PEEK
3- отпускает палец и нажмите на основном фрагменте
4- Try, чтобы открыть ящик, как обычно

Иногда ящик застрял в режиме подглядывания независимо от того, сколько вы проведете пальцем вправо, чтобы открыть ящик больше. Кто-нибудь имел/исправил эту проблему?

+2

Возможный дубликат http://stackoverflow.com/questions/17896052/why-does-drawerlayout-sometimes-glitch-upon-opening/18086735#18086735 – paul

ответ

19

Я столкнулся с аналогичной проблемой, упомянутой вами. У меня был вид списка внутри относительного макета (FILL_PARENT). Всякий раз, когда содержимое в представлении списка меньше, и когда я перетаскивал область, находящуюся за пределами представления списка, ящик навигации был поражен. Установка android:clickable="true" для относительной компоновки разрешила проблему. Надеюсь, это поможет.

+0

Вы установили android: clickable = "true" в относительном макет навигационного ящика, где у вас есть список? – xlar8or

+2

Вам нужно установить 'clickable =" true "' на любой макет, который вы используете для хранения основного содержимого. – mato

16

Для уточнения на ответ Viji, в если вы используете что-то вроде примера навигации выдвижного ящичка:

<!-- 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> 

Добавление android:clickable="true" к FrameLayout, кажется, решить эту проблему.

+1

Я использую 'LinearLayout', и он также работает. :) – mato