我几乎在所有活动中都有AppCompat21 Appbar / Toolbar。所有活动布局文件都有以下共同点:
<!-- 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 /工具栏的外观和感觉,因此我不需要在任何地方使用这段冗余代码。
这甚至可能吗?我已经按照按钮样式完成了它,但我无法理解这个...
答案 0 :(得分:2)
您可以创建包含工具栏的布局资源文件,名为Doughnut
,
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"
/>
答案 1 :(得分:0)
在Android Studio中创建新的Blank Activity项目时,它会创建一个包含以下内容的styles.xml。我认为最后两行在主题级别实现了你想要的东西:
<!-- 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" />