不要在主题中请求Window.FEATURE_ACTION_BAR并将windowActionBar设置为false以使用工具栏代替

时间:2015-06-05 15:08:01

标签: android mvvmcross toolbar

当我将工具栏应用到我的应用程序中时,我遇到了这个问题,当我尝试运行应用程序时它崩溃了。我使用了之前的所有帖子但没有运气。      这是我的代码:

Style.xml

<style name="ToolBarStyle" parent="@style/Theme.AppCompat.Light">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>       

 </style> 

我尝试了父=&#34; @ style / Theme.AppCompat.Light.NoActionBar&#34;但没有奏效。

Toolbar.xmal

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:local="http://schemas.android.com/apk/res-auto"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorPrimary"
    android:minHeight="?attr/actionBarSize"
    android:theme="@style/ToolBarStyle" />

Manifest.axml

    <application android:label="Capzure" android:theme="@style/ToolBarStyle" android:icon="@drawable/Icon"></application>

谢谢。

1 个答案:

答案 0 :(得分:22)

您的主题应如下所示,然后移除@style/

<style name="MyMaterialTheme" parent="Theme.AppCompat.NoActionBar">
        <item name="windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
    ...
</style>

然后,不要在<application/>标签中定义主题。仅使用您要使用材料设计主题的活动定义它,即在<activity>标记中。

如果您的活动延伸PreferenceActivityAppCompatActivityActionBarActivity,您希望与PreferenceFragment开始交易,请将您的主题更改为:

<style name="MyMaterialTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="windowNoTitle">true</item>
        <item name="windowActionBar">true</item>
    ...
</style>

并从工具栏中删除此行:

android:theme="@style/ToolBarStyle"