2016-06-07 13 views
-1

Когда я пытаюсь использовать макет ящика внутри свитка просмотра мой App СбоиAndroid макет использование ящика вид внутри спирального

Трассировка стека:

06-07 14:35:30.482 18292-18292/com.example.mmido.trivelgob2b E/AndroidRuntime: FATAL EXCEPTION: main 
Process: com.example.mmido.trivelgob2b, PID: 18292 
java.lang.IllegalArgumentException: DrawerLayout must be measured with MeasureSpec.EXACTLY. 
at android.support.v4.widget.DrawerLayout.onMeasure(DrawerLayout.java:1036) 
at android.view.View.measure(View.java:16971) 
at android.widget.ScrollView.measureChildWithMargins(ScrollView.java:1237) 
at android.widget.FrameLayout.onMeasure(FrameLayout.java:340) 
at android.widget.ScrollView.onMeasure(ScrollView.java:326) 
at android.view.View.measure(View.java:16971) 
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5374) 
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1621) 
at android.widget.LinearLayout.measureVertical(LinearLayout.java:742) 
at android.widget.LinearLayout.onMeasure(LinearLayout.java:607) 
at android.view.View.measure(View.java:16971) 
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5374) 
at android.widget.FrameLayout.onMeasure(FrameLayout.java:340) 
at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:135) 
at android.view.View.measure(View.java:16971) 
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5374) 
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1621) 
at android.widget.LinearLayout.measureVertical(LinearLayout.java:742) 
at android.widget.LinearLayout.onMeasure(LinearLayout.java:607) 
at android.view.View.measure(View.java:16971) 
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5374) 
at android.widget.FrameLayout.onMeasure(FrameLayout.java:340) 
at android.view.View.measure(View.java:16971) 
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5374) 
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1621) 
at android.widget.LinearLayout.measureVertical(LinearLayout.java:742) 
at android.widget.LinearLayout.onMeasure(LinearLayout.java:607) 
at android.view.View.measure(View.java:16971) 
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5374) 
at android.widget.FrameLayout.onMeasure(FrameLayout.java:340) 
at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2337) 
at android.view.View.measure(View.java:16971) 
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2254) 
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1315) 
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1513) 
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1192) 
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6172) 
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:788) 
at android.view.Choreographer.doCallbacks(Choreographer.java:591) 
at android.view.Choreographer.doFrame(Choreographer.java:560) 
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:774) 
at android.os.Handler.handleCallback(Handler.java:808) 
at android.os.Handler.dispatchMessage(Handler.java:103) 
at android.os.Looper.loop(Looper.java:193) 
at android.app.ActivityThread.main(ActivityThread.java:5398) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:515) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:940) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756) 
at dalvik.system.NativeStart.main(Native Method) 

я использовал вид корня это просмотр прокрутки, но после поиска я обнаружил, что должен сделать корневой макет линейным макетом, тогда scrollview, содержащий макет ящика и его содержимое. Я пробовал это, но мое приложение по-прежнему падает с той же трассировкой стека.

Мой XML:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fillViewport="true"> 
<android.support.v4.widget.DrawerLayout 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/drawerLayout" 

    tools:context=".Admin.Airlines.EditAirlineActivity"> 
    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <include layout="@layout/header"/> 


     <TextView 
      android:layout_width="0dp" 
      android:layout_height="0dp" 
      android:id="@+id/internetstatus" 
      android:textAlignment="center" /> 

     <android.support.v4.widget.DrawerLayout 
      android:layout_width="fill_parent" 
      android:layout_height="match_parent" 
      android:id="@+id/sub_drawer"> 
      <LinearLayout 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:id="@+id/mainContent" 
       android:orientation="vertical" 
       android:paddingTop="20dp" 
       android:background="@drawable/basic_background_v2"> 

       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="Name:" 
        android:paddingLeft="20dp" 
        android:textColor="#ffffff" 
        android:textStyle="bold" 
        android:id="@+id/textView3" /> 
       <EditText 
        android:id="@+id/airline_edit_name" 
        android:layout_width="fill_parent" 
        android:layout_height="50dp" 
        android:paddingLeft="20dp" 
        android:textSize="14dp" 
        android:textColor="#C0C0C0" 
        android:textColorHint="#C0C0C0" 
        android:hint=" Name" 
        android:singleLine="true" 
        android:background="@drawable/textbox_border" /> 
       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="Arabic Name:" 
        android:paddingLeft="20dp" 
        android:textColor="#ffffff" 
        android:textStyle="bold" 
        android:id="@+id/textView4" /> 
       <EditText 
        android:id="@+id/airline_edit_arabic_name" 
        android:layout_width="fill_parent" 
        android:layout_height="50dp" 
        android:paddingLeft="20dp" 
        android:textSize="14dp" 
        android:textColor="#C0C0C0" 
        android:textColorHint="#C0C0C0" 
        android:hint="Arabic Name" 
        android:singleLine="true" 
        android:background="@drawable/textbox_border" /> 
       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="Short Name:" 
        android:textColor="#ffffff" 
        android:paddingLeft="20dp" 
        android:textStyle="bold" 
        android:id="@+id/textView5" /> 
       <EditText 
        android:id="@+id/airline_edit_short_name" 
        android:layout_width="fill_parent" 
        android:layout_height="50dp" 
        android:paddingLeft="20dp" 
        android:textSize="14dp" 
        android:textColor="#C0C0C0" 
        android:textColorHint="#C0C0C0" 
        android:hint="Short Name" 
        android:singleLine="true" 
        android:background="@drawable/textbox_border" /> 
       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="Code:" 
        android:paddingLeft="20dp" 
        android:textColor="#ffffff" 
        android:textStyle="bold" 
        android:id="@+id/textView6" /> 
       <EditText 
        android:id="@+id/airline_edit_code" 
        android:layout_width="fill_parent" 
        android:layout_height="50dp" 
        android:paddingLeft="20dp" 
        android:textSize="14dp" 
        android:textColor="#C0C0C0" 
        android:textColorHint="#C0C0C0" 
        android:hint="Code" 
        android:singleLine="true" 
        android:background="@drawable/textbox_border" /> 


       <ImageView 
        android:layout_width="match_parent" 
        android:layout_height="200dp" 
        android:id="@+id/air_line_edit_img" 
        android:onClick="SelectImage" 
        android:src="@drawable/ic_menu_camera" /> 

       <Button 
        android:id="@+id/airline_edit_btn" 
        android:layout_width="match_parent" 
        android:textSize="20sp" 
        android:text="Save" 
        android:background="@drawable/red_btn" 
        style="@style/button_text" 
        android:onClick="EditAirline" 
        android:layout_centerHorizontal="true" 
        android:layout_height="wrap_content" /> 

      </LinearLayout> 
      <include layout= "@layout/menu"/> 
     </android.support.v4.widget.DrawerLayout> 

    </LinearLayout> 


</android.support.v4.widget.DrawerLayout> 
</ScrollView> 
</LinearLayout> 

Отредактировано

это то, что я пытался, но все-таки ошибка существует

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

    tools:context=".Admin.Airlines.EditAirlineActivity"> 
    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 
    <ScrollView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:fillViewport="true"> 
    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <include layout="@layout/header"/> 


     <TextView 
      android:layout_width="0dp" 
      android:layout_height="0dp" 
      android:id="@+id/internetstatus" 
      android:textAlignment="center" /> 

     <android.support.v4.widget.DrawerLayout 
      android:layout_width="fill_parent" 
      android:layout_height="match_parent" 
      android:id="@+id/sub_drawer"> 
      <LinearLayout 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:id="@+id/mainContent" 
       android:orientation="vertical" 
       android:paddingTop="20dp" 
       android:background="@drawable/basic_background_v2"> 

       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="Name:" 
        android:paddingLeft="20dp" 
        android:textColor="#ffffff" 
        android:textStyle="bold" 
        android:id="@+id/textView3" /> 
       <EditText 
        android:id="@+id/airline_edit_name" 
        android:layout_width="fill_parent" 
        android:layout_height="50dp" 
        android:paddingLeft="20dp" 
        android:textSize="14dp" 
        android:textColor="#C0C0C0" 
        android:textColorHint="#C0C0C0" 
        android:hint=" Name" 
        android:singleLine="true" 
        android:background="@drawable/textbox_border" /> 
       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="Arabic Name:" 
        android:paddingLeft="20dp" 
        android:textColor="#ffffff" 
        android:textStyle="bold" 
        android:id="@+id/textView4" /> 
       <EditText 
        android:id="@+id/airline_edit_arabic_name" 
        android:layout_width="fill_parent" 
        android:layout_height="50dp" 
        android:paddingLeft="20dp" 
        android:textSize="14dp" 
        android:textColor="#C0C0C0" 
        android:textColorHint="#C0C0C0" 
        android:hint="Arabic Name" 
        android:singleLine="true" 
        android:background="@drawable/textbox_border" /> 
       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="Short Name:" 
        android:textColor="#ffffff" 
        android:paddingLeft="20dp" 
        android:textStyle="bold" 
        android:id="@+id/textView5" /> 
       <EditText 
        android:id="@+id/airline_edit_short_name" 
        android:layout_width="fill_parent" 
        android:layout_height="50dp" 
        android:paddingLeft="20dp" 
        android:textSize="14dp" 
        android:textColor="#C0C0C0" 
        android:textColorHint="#C0C0C0" 
        android:hint="Short Name" 
        android:singleLine="true" 
        android:background="@drawable/textbox_border" /> 
       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="Code:" 
        android:paddingLeft="20dp" 
        android:textColor="#ffffff" 
        android:textStyle="bold" 
        android:id="@+id/textView6" /> 
       <EditText 
        android:id="@+id/airline_edit_code" 
        android:layout_width="fill_parent" 
        android:layout_height="50dp" 
        android:paddingLeft="20dp" 
        android:textSize="14dp" 
        android:textColor="#C0C0C0" 
        android:textColorHint="#C0C0C0" 
        android:hint="Code" 
        android:singleLine="true" 
        android:background="@drawable/textbox_border" /> 


       <ImageView 
        android:layout_width="match_parent" 
        android:layout_height="200dp" 
        android:id="@+id/air_line_edit_img" 
        android:onClick="SelectImage" 
        android:src="@drawable/ic_menu_camera" /> 

       <Button 
        android:id="@+id/airline_edit_btn" 
        android:layout_width="match_parent" 
        android:textSize="20sp" 
        android:text="Save" 
        android:background="@drawable/red_btn" 
        style="@style/button_text" 
        android:onClick="EditAirline" 
        android:layout_centerHorizontal="true" 
        android:layout_height="wrap_content" /> 

      </LinearLayout> 
      <include layout= "@layout/menu"/> 
     </android.support.v4.widget.DrawerLayout> 

    </LinearLayout> 

    </ScrollView> 
    </RelativeLayout> 
</android.support.v4.widget.DrawerLayout> 

ответ

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" 
    android:id="@+id/drawer_layout" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <!-- here insert your scrollview and all views you need for this page this is actually your page --> 

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

Я попробовал, что сейчас, но я до сих пор ту же ошибку –

+0

показать свой новый XML –

+0

я добавил его к вопросу, теперь вы можете увидеть его –