我收到运行时错误#25:您必须提供layout_width属性

时间:2017-03-07 17:55:43

标签: android performance android-layout android-studio android-xml

我收到运行时错误,Android应用程序正在停止

  

android.view.InflateException:二进制XML文件行#9:二进制XML文件行#9:错误膨胀类android.support.design.widget.NavigationView

     

引起:android.view.InflateException:二进制XML文件行#9:错误膨胀类android.support.design.widget.NavigationView

     

引起:android.view.InflateException:二进制XML文件行#25:二进制XML文件行#25:您必须提供layout_width属性。                                                                                 引起:java.lang.UnsupportedOperationException:二进制XML文件行#25:您必须提供layout_width属性。

这是我的xml代码

<RelativeLayout 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"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context="com.example.xxx.xxx.Main_Tab"
>

<android.support.design.widget.NavigationView
    android:id="@+id/nav_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:fitsSystemWindows="true"
    app:headerLayout="@layout/nav_header_main"
    app:menu="@menu/activity_main_drawer" >
    <include
        layout="@layout/app_bar"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</android.support.design.widget.NavigationView>

<android.support.design.widget.TabLayout
    android:id="@+id/tab_layout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/nav_view"
    android:background="#00BCD4"

    android:minHeight="?attr/actionBarSize"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/>

<android.support.v4.view.ViewPager
    android:id="@+id/pager1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/tab_layout1"/>


 </RelativeLayout>

这是app_bar.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout      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:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="com.example.xxx.xxx.Main_Tab">

<android.support.design.widget.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/AppTheme.AppBarOverlay">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="#8BC34A"
        app:popupTheme="@style/AppTheme.PopupOverlay" />

</android.support.design.widget.AppBarLayout>

<FrameLayout
    android:id="@+id/frame"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior">    </FrameLayout>
 </android.support.design.widget.CoordinatorLayout>

这里是代码activity_main_drawer

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"

>
<group android:checkableBehavior="single">
    <item
        android:id="@+id/nav_home"
        android:icon="@drawable/ic_home_black_24dp"
        android:title="@string/nav_home" />

    <item
        android:id="@+id/nav_notifications"
        android:icon="@drawable/ic_notifications_black_24dp"
        android:title="@string/nav_notifications" />
  </group>

  <item android:title="Other">
    <menu>
        <item
            android:id="@+id/nav_about_us"
            android:title="@string/nav_about_us" />
        <item
            android:id="@+id/nav_privacy_policy"
            android:title="@string/privacy_policy" />
    </menu>
</item>

</menu>

1 个答案:

答案 0 :(得分:0)

你的布局似乎很好。但是你已经在这个布局中包含了一些布局。

app:headerLayout="@layout/nav_header_main"
app:menu="@menu/activity_main_drawer"

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

很可能您在android:layout_width@layout/app_bar@layout/nav_header_main中的任何一个布局都缺少@menu/activity_main_drawer属性。