2015-06-11 3 views
0

Я стараюсь следовать этому tutorial, чтобы создать панель инструментов для создания материалов. Я на шаге 7, где моя деятельность должна иметь бар цвет инструмента, но мое приложение выглядит my appДизайн материалов для Android - Создание панели инструментов

для справки, вот мои style.xml, color.xml, tool_bar.xml файлы

style.xml

<resources> 

    <!-- Base application theme. --> 
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
     <item name="android:colorPrimary">@color/ColorPrimary</item> 
     <item name="android:colorPrimaryDark">@color/ColorPrimaryDark</item> 
     <!-- Customize your theme here. --> 
    </style> 

</resources> 

был еще style.xml в той же папке, которая имеет (21) рядом с ним. Однако я не внес никаких изменений.

color.xml

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <color name="ColorPrimary">#FF5722</color> 
    <color name="ColorPrimaryDark">#E64A19</color> 
</resources> 

tool_bar.xml

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@color/ColorPrimary" 
    android:elevation="4dp"> 

</android.support.v7.widget.Toolbar> 

activity_main.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" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".MainActivity"> 

    <include 
     android:id="@+id/tool_bar" 
     layout="@layout/tool_bar" 
     /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/hello_world" /> 

</RelativeLayout> 

UPDATE Если я вношу изменения в файл stylev21.xml, я вижу, что мое приложение выглядит как в учебнике. Но если оставить style-v21.xml без изменений и внести изменения в style.xml, я не вижу этих изменений. Какой файл стиля * .xml нужно изменить?

+0

Следуйте 8-му шагу учебника. Ты поймешь. @Em Ae – Pooja

+0

Но перед шагом 8 ui должен выглядеть как шаг 7. Разве вы так не думаете? То, что подразумевает учебник. –

+0

Но вы использовали 'ToolBar' с 9-го шага до 7-го шага. Учебники могут иметь проблемы с последовательностью. Его можно понять только после его прочтения. Вы должны следовать правильной последовательности. @Em Ae – Pooja

ответ

1

Цель, имеющих различную styles.xml, что вы можете добавить изменения, характерные для версии Android. Но тогда вам нужно поддерживать те же изменения в обоих файлах.

Если вы тестируете приложение на устройстве, имеющем версию для Android версии 5.0 lollipop, тогда стиль, определенный в v21/styles.xml, будет отображаться в вашем приложении. В противном случае общие styles.xml

Если вы хотите получить тот же результат, что и в учебнике, я бы предложил несколько изменений.

  1. Корректировать activity_main.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"  
    tools:context=".MainActivity"> 
    
    <include 
         android:id="@+id/tool_bar" 
         layout="@layout/tool_bar"/> 
    
    <TextView 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:text="@string/hello_world" /> 
    
    </RelativeLayout> 
    

P.S. Я только что удалил поле с RelativeLayout.

  1. Измените оба styles.xml и определите стиль, который не содержит панели действий. Например. "Theme.AppCompat.Light.NoActionBar"

После выполнения этих изменений ваше приложение будет отлично работать на всех устройствах. Надеюсь, это поможет.

+0

Спасибо, этот ответ показывает мне лучший способ реализовать. Продвижение с моей стороны. – Pankaj

0

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

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     toolbar = (Toolbar) findViewById(R.id.tool_bar); // Attaching the layout to the toolbar object 
     setSupportActionBar(toolbar);     // Setting toolbar as the ActionBar with setSupportActionBar() call 

    } 
+0

Я внес изменения в styles.xml (v21), и я смог увидеть изменения. При этом вы можете сказать мне, что такое метод setSupportActionBar? Я имею в виду, что не могу найти его, пока я в методе MainActivity.onCreate. –

+0

Вы используете библиотеку appcompat? его метод установки макета панели инструментов в качестве панели действий, вы должны расширять AppCompatActivity вместо действия ActionBar, как упоминалось в учебнике. – 3xplore

+0

Изменил mainactivity и расширил его из AppCompatActivity. называемый 'setsupportactionbar' перед' setcontentview' и до сих пор не получил желаемого результата. –

0

изменить вашу тему в Theme.AppCompat.Light.DarkActionBar вместо NoActionBar.

Тогда вам не нужно, чтобы добавить добавить его в файл XML макет

изменить Также android:colorPrimary в colorPrimary (снять android:) и android:colorPrimaryDark к colorPrimaryDark.

0

Сделайте style.xml как this-

<resources> 

<!-- Base application theme. --> 
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
    <item name="colorPrimary">@color/ColorPrimary</item> 
    <item name="colorPrimaryDark">@color/ColorPrimaryDark</item> 
    <!-- Customize your theme here. --> 
</style> 

</resources> 

Причина - поиск AppCompat текста без "андроида":

+0

У меня есть два стиля.xmls. 1 прост, а другой - с v21 (серый), какой из них изменить? –

+0

Простой, Не v21 – architjn

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