Android主题错误

时间:2015-11-24 11:29:25

标签: android material-design android-theme

我想为我的应用制作新主题(< v21之前的一个主题和一个主题>=v21及更高版本)。

这是来自Activity的代码:

  protected void onCreate(Bundle savedInstanceState) {
        setTheme(R.style.DriverNotesAppTheme);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_tool_bar_test);

        toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        getSupportActionBar().setDisplayShowTitleEnabled(false);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setHomeButtonEnabled(true);
}

XML布局工具栏:

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    android:minHeight="?attr/actionBarSize"
    app:contentInsetEnd="0dp"
    app:contentInsetStart="0dp"
    app:popupTheme="@style/DriverNotesAppTheme"
    app:theme="@style/DriverNotesAppTheme">

这是v21之前的主题:

<style name="DriverNotesAppTheme" parent="Theme.AppCompat.NoActionBar">
    <!-- customize the color palette -->
    <item name="colorPrimary">@color/material_bg</item>
    <item name="colorPrimaryDark">@color/status_bar</item>
    <item name="colorAccent">@color/edittext_primary</item>
    <item name="android:windowBackground">@color/light_blue</item>
</style>

这是v21及更高版本的主题:

<style name="DriverNotesAppTheme" parent="android:Theme.Material">
    <!-- customize the color palette -->
    <item name="colorPrimary">@color/material_bg</item>
    <item name="colorPrimaryDark">@color/status_bar</item>
    <item name="colorAccent">@color/edittext_primary</item>
    <item name="android:windowBackground">@color/light_blue</item>
</style>

这是截图: enter image description here v21及以上;

enter image description here

之前v21

来自资源的颜色: enter image description here

1 个答案:

答案 0 :(得分:3)

代码更正

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_tool_bar_test);

    toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayShowTitleEnabled(false);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setHomeButtonEnabled(true);

}

在工具栏中设置主题

<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:minHeight="?attr/actionBarSize"
app:contentInsetEnd="0dp"
app:contentInsetStart="0dp"
app:popupTheme="@style/<Your Theme Name>"
app:theme="@style/<Your Theme Name>"/>