2015-11-19 4 views
0

Я попытался создать NavigationView для моего приложения, как это:NavigationView дает некоторые ошибки

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

<!-- Toolbar instead of ActionBar so the drawer can slide on top --> 
<android.support.v7.widget.Toolbar 
    android:id="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="@dimen/abc_action_bar_default_height_material" 
    android:background="?attr/colorPrimary" 
    android:minHeight="?attr/actionBarSize" 
    android:theme="@style/AppTheme.Toolbar"/> 

<!-- Real content goes here --> 
<FrameLayout 
    android:id="@+id/content" 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:layout_weight="1"/> 

<!-- The navigation drawer --> 
<android.support.design.widget.NavigationView 
android:id="@+id/navigation" 
android:layout_width="wrap_content" 
android:layout_height="match_parent" 
android:layout_gravity="start" 
android:background="@android:color/background_dark" 
app:headerLayout="@layout/drawer_header" 
app:itemIconTint="@android:color/background_light" 
app:itemTextColor="@android:color/background_dark" 
app:menu="@menu/drawer"/> 

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

Но затем он запускает мне несколько ошибок при поиске для headerLayout (drawer_header la yout существует, также drawer xml).

Он говорит:

Нет идентификатор ресурса найден для атрибута «headerLayout» в пакете «xxx.xxx»

Оба XML существует, так что я не знаю, не то, что я делаю неправильно ...

Я скомпилирую API 21 на Eclpse.

Почему эта ошибка происходит ???

EDIT: ПОЖАЛУЙСТА, мне нужна помощь ... Я до сих пор не могу скомпилировать это ... Я загрузил свой код в Dropbox всем, кто может мне помочь ... Все еще нахожу проблемы!

Я попытался добавить appcompatv7 библиотеки, но они дают мне ошибки ... И теперь мой проект не работает ... Пожалуйста, помогите!

Link to Dropbox here

+0

Вы также можете добавить журнал ошибок? – penduDev

+0

Может быть, немой вопрос, но добавили ли вы библиотеки поддержки в свой проект? В частности, v7 может быть добавлен неправильно, потому что это сложная работа. :) – Klotor

+0

Я думаю, что они добавлены, но я думаю, что моя проблема исходит оттуда, потому что кажется, что мой android.support.v4.widget.Toolbar (как пример) не существует! Панель инструментов там не отображается! – Sonhja

ответ

0

Все было решено, когда я повышен до Android Studio ...

Спасибо всем, ребята!

0

Вы должны оформить этот учебник для проектирования поддержки навигации ящика: http://antonioleiva.com/navigation-view/ этого учебника также иметь ссылку на проект GitHub в конце.

После просмотра кода я могу сказать, что вы сделали это:

<DrawerLayout> 
    <Toolbar/> 
    <FrameLayout>your content here</FrameLayout> 
    <NavigationView/> 
</DrawerLayout> 

, но это как макет ящика работы:

<DrawerLayout> 
    <LinearLayout> 
     <Toolbar/> 
     <FrameLayout>your content here</FrameLayout> 
    </LinearLayout> 
    <NavigationView/> 
</DrawerLayout> 

короче -> DrawerLayout должен иметь только двое детей (here's the official doc, который говорит так)

+0

Ничто из этих решений не решит мою проблему ... Я все еще могу скомпилировать свой проект ... – Sonhja

+0

Можете ли вы обновить вопрос с помощью макета, который вы используете сейчас (макет ящика с 2 детьми) , а также добавьте ваш файл gradle – penduDev

+0

Я думаю, что моя проблема связана с библиотекой appcompat v7. Позвольте мне попытаться решить это ... – Sonhja

0

Это мой пример. Я помещаю drawerlayout внутри CoordinatorLayout, потому что я не хочу, чтобы ящик блокировал мою панель инструментов. Таким образом, вы можете увидеть приятную анимацию иконок гамбургеров.

<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" 
    tools:context="<your package name.your activity name>"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/appbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:fitsSystemWindows="true" 
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      app:layout_collapseMode="pin" 
      app:popupTheme="@style/ThemeOverlay.AppCompat.Dark" /> 

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

    <android.support.v4.widget.DrawerLayout 
     android:id="@+id/drawer_layout" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior"> 

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


     <android.support.design.widget.NavigationView 
      android:id="@+id/navigation" 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:layout_gravity="start" 
      app:headerLayout="@layout/drawer_header" 
      app:itemBackground="@drawable/drawer_item_bg" 
      app:itemIconTint="@color/drawer_item_text" 
      app:itemTextColor="@color/drawer_item_text" 
      app:menu="@menu/navigation_menu" /> 

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

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

Тогда вам понадобится другой макет с именем drawer_header.xml в папке макета.

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout 
    xmlns:customAttrs="http://schemas.android.com/apk/res-auto" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="156dp" 
    android:background="@color/primary_color" 
    android:orientation="vertical"> 

    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="bottom|start" 
     android:layout_marginBottom="8dp" 
     android:layout_marginLeft="16dp" 
     android:layout_marginRight="16dp" 
     android:text="@string/app_name" 
     android:textColor="@color/primary_white"/> 

</FrameLayout> 

Выделяемый в вашей папке с именем drawer_item_bg.XML

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_checked="true"> 
     <color android:color="@color/primary_color_light"/> 
    </item> 
    <item> 
     <color android:color="@android:color/transparent"/> 
    </item> 
</selector> 

И не говоря уже о вашей теме в style.xml

<style name="AppBase" parent="Theme.AppCompat.Light.NoActionBar"> 
    <item name="colorPrimary">@color/primary_color</item> 
    <item name="colorPrimaryDark">@color/primary_color_dark</item> 
    <item name="colorAccent">@color/primary_yellow_bright</item> 
    <item name="colorControlNormal">@color/primary_yellow</item> 
    <item name="colorControlHighlight">@color/primary_color_light_100</item> 
    <item name="colorControlActivated">@color/primary_yellow_bright</item> 
    <item name="colorButtonNormal">@color/primary_yellow_bright</item> 
    <item name="android:windowBackground">@color/primary_white</item> 
    <item name="android:textColorPrimary">@color/primary_color</item> 
    <item name="android:textColorSecondary">@color/primary_color_light</item> 
    <item name="android:textColor">@color/primary_white</item> 
    <item name="android:buttonStyle">@style/ButtonAppTheme</item> 
</style> 

Наконец действительно добавляют эти две зависимости в вашем build.gradle

compile 'com.android.support:appcompat-v7:23.0.1' 
compile 'com.android.support:design:23.0.1' 
+0

Ничто из этих решений не решает мою проблему ... Я все еще могу скомпилировать свой проект ... – Sonhja

+0

Я сделал обновление ... Пожалуйста, просмотрите его ... – Sonhja

Смежные вопросы