2016-02-17 2 views
2

У меня есть AppPompat21 Appbar/панель инструментов практически во всех моих действиях. Все файлы деятельности макета имеют следующие общие черты:Как я могу переопределить стиль панели инструментов для всех моих действий по всему миру?

<!-- material design actionbar & toolbar --> 
<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="wrap_content" 
     android:minHeight="?attr/actionBarSize" 
     android:theme="@style/AppTheme.AppBarOverlay" 
     app:popupTheme="@style/AppTheme.PopupOverlay" 
     /> 

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

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

android:theme="@style/AppTheme.AppBarOverlay" 
android:theme="@style/AppTheme.AppBarOverlay" 
app:popupTheme="@style/AppTheme.PopupOverlay" 

Я пытаюсь выяснить, как переопределить AppBar/панель инструментов выглядеть и чувствовать себя глобально в моем приложении, поэтому мне не нужен этот кусок избыточного кода повсюду.

Возможно ли это? Я сделал это для стиля кнопки, но я не могу получить мою голову вокруг этого ...

ответ

2

Вы можете создать файл макета ресурса, содержащего панель инструментов, названный toolbar,

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.Toolbar 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    app:popupTheme="@style/AppTheme.PopupOverlay" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:theme="@style/AppTheme.AppBarOverlay" 
    app:popupTheme="@style/AppTheme.PopupOverlay" 
/> 

и ваши действия вы можете просто сделать

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

Вы пробовали и работают ли они нормально? – Spirrow

+0

Я знаю, что это работает, но часть моего вопроса заключается в том, как переопределить внешний вид панели инструментов, используя тему/стиль, не добавляя в теги style = "xyz". – Pepster

0

Когда вы создаете новый проект Blank Activity в Android Studio, он создает файл styles.xml, который включает в себя следующее. Я думаю, что последние 2 строки выполняют то, что вы хотите на уровне темы:

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

<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" /> 
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />