2016-09-17 5 views
-2

나는 내 응용 프로그램의이 부분을 변경하지 않은,하지만 난 그것을 재건 후,이 힘은 가까운 표시 :왜이 서랍 강제로 내 앱이 닫히나요?

내 활동 레이아웃
java.lang.IllegalStateException: Child drawer has absolute gravity LEFT but this DrawerLayout already has a drawer view along that edge Exception. 

:이 예외를 가지고

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.widget.DrawerLayout 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:id="@+id/draw" 
xmlns:android="http://schemas.android.com/apk/res/android" > 
<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/lin_hime_body" 
    android:orientation="vertical"> 
    <include 
     layout="@layout/lay_title_main" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"/> 
    <FrameLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:id="@+id/frm_home"/> 
</LinearLayout> 
<LinearLayout 
    android:layout_width="80dp" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    android:orientation="vertical" 
    android:id="@+id/menu1"> 
    <include layout="@layout/lay_menu1"/> 
</LinearLayout> 
<LinearLayout 
    android:layout_width="240dp" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    android:orientation="vertical" 
    android:id="@+id/menu2"> 
    <include layout="@layout/lay_menu2"/> 
</LinearLayout> 
<LinearLayout 
    android:layout_width="240dp" 
    android:layout_height="match_parent" 
    android:layout_gravity="end" 
    android:orientation="vertical" 
    android:id="@+id/menu3"> 
    <include layout="@layout/lay_menu3"/> 
</LinearLayout> 
</android.support.v4.widget.DrawerLayout> 

java.lang.IllegalStateException: Child drawer has absolute gravity 
LEFT but this DrawerLayout already has a drawer view along that edge 
                      at 
android.support.v4.widget.DrawerLayout.onMeasure(DrawerLayout.java:1089) 
                      at android.view.View.measure(View.java:18916) 
                      at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5972) 
                      at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) 
                      at android.view.View.measure(View.java:18916) 
                      at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5972) 
                      at 
android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465) 
                      at android.widget.LinearLayout.measureVertical(LinearLayout.java:748) 
                      at android.widget.LinearLayout.onMeasure(LinearLayout.java:630) 
                      at android.view.View.measure(View.java:18916) 
                      at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5972) 
                      at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) 
                      at 
com.android.internal.policy.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2693) 
                      at android.view.View.measure(View.java:18916) 
                      at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2218) 
                      at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1294) 
                      at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1536) 
                      at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1185) 
                      at 
android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6255) 
                      at 
android.view.Choreographer$CallbackRecord.run(Choreographer.java:873) 
                      at android.view.Choreographer.doCallbacks(Choreographer.java:676) 
                      at android.view.Choreographer.doFrame(Choreographer.java:606) 
                      at 
android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:859) 
                      at android.os.Handler.handleCallback(Handler.java:739) 
                      at android.os.Handler.dispatchMessage(Handler.java:95) 
                      at android.os.Looper.loop(Looper.java:168) 
                      at android.app.ActivityThread.main(ActivityThread.java:5885) 
                      at java.lang.reflect.Method.invoke(Native Method) 
                      at 
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:819) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:709) 
+0

에서 열고 자하는 경우에 대해 설명해야합니까? –

+0

android.support.v4.widget.DrawerLayout 내가 – AbhayBohra

+0

을 가질 수있다? 아동 서랍 LEFT 절대 중력을 가지고 있지만이 DrawerLayout 이미 내가 drawerLayout 내부에 하나 이상의에게 NavigationView 를 추가하려고하기 때문에이 오류가 발생하였습니다 edge' –

답변

0

시도해보십시오.

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/draw" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <LinearLayout 
      android:id="@+id/lin_hime_body" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="vertical"> 

      <include 
       layout="@layout/lay_title_main" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" /> 

      <FrameLayout 
       android:id="@+id/frm_home" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" /> 
     </LinearLayout> 

     <LinearLayout 
      android:id="@+id/menu1" 
      android:layout_width="80dp" 
      android:layout_height="match_parent" 
      android:layout_gravity="start" 
      android:orientation="vertical"> 

      <include layout="@layout/lay_menu1" /> 
     </LinearLayout> 

     <LinearLayout 
      android:id="@+id/menu2" 
      android:layout_width="240dp" 
      android:layout_height="match_parent" 
      android:layout_gravity="start" 
      android:orientation="vertical"> 

      <include layout="@layout/lay_menu2" /> 
     </LinearLayout> 
    </RelativeLayout> 

    <LinearLayout 
     android:id="@+id/menu3" 
     android:layout_width="240dp" 
     android:layout_height="match_parent" 
     android:layout_gravity="left" 
     android:orientation="vertical"> 

     <include layout="@layout/lay_menu3" /> 
    </LinearLayout> 


</android.support.v4.widget.DrawerLayout> 
+0

해결되었습니다! 하지만 지금은 서랍 alwas 열려 있고 혹이 난 drawer.close (MENU1) 앱이 강제 폐쇄 물품. –

+0

시도의 drawer.closeDrawers() 서랍을 닫습니다 – AbhayBohra

1

귀하의 DrawerLayout 만이 아이를 가질해야하며, 제발 중력 속성을 가지고 있고 당신이 스택 추적을 게시 할 수 서랍

<android.support.v4.widget.DrawerLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/drawer_layout" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:fitsSystemWindows="true" 
tools:openDrawer="start"> 

<include 
    layout="@layout/your_actiivity_views_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 

<android.support.design.widget.NavigationView 
    android:id="@+id/nav_view" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:layout_gravity="start"/> 
</android.support.v4.widget.DrawerLayout>