Material 缺少操作栏

Material Action Bar Missing

我保证这不是重复的问题。我在这个主题上看到了很多其他类似的问题,但它们似乎都在使用 appCompat,none 回答了我的问题。

问题

我 运行 遇到一个问题,如果我使用 Material 主题 Theme.Material.Light 针对 AOSP 中的 v21 API 进行编译,我将无法显示操作栏。一切看起来都非常 material 但没有操作栏。

我试过的

代码

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.myApp"
    android:versionCode="1"
    android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="21"
    android:targetSdkVersion="21" />
<application
    android:icon="@drawable/launcher"
    android:label="@string/app_name" >
    <service android:name=".ServiceA" >
        <intent-filter>
            <action android:name="com.qualcomm.listen.sva.LOCAL_SERVICE" />
            <action android:name="com.qualcomm.listen.sva.REMOTE_SERVICE" />
        </intent-filter>
    </service>

    <activity
        android:name=".ux.dev.ActivityC"
        android:configChanges="orientation|screenSize"
        android:label="@string/app_name"
        android:theme="@style/ThemeA.Theme" >
    </activity>
    <activity
        android:name=".ux.dev.ActivityB"
        android:configChanges="orientation|screenSize"
        android:label="@string/app_name"
        android:theme="@style/ThemeA.Theme" >
    </activity>
    <activity
        android:name=".ux.dev.ActivityA"
        android:configChanges="orientation|screenSize"
        android:label="@string/app_name"
        android:launchMode="singleTask"
        android:theme="@style/ThemeA.Theme" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".ux.dev.ActivityD"
        android:configChanges="orientation|screenSize"
        android:label="@string/app_name"
        android:theme="@style/ThemeA.Theme" >
    </activity>
    <activity
        android:name=".ux.dev.ActivityE"
        android:label="@string/app_name"
        android:theme="@style/ThemeA.Theme" >
    </activity>
    <activity
        android:name=".ux.dev.ActivityF"
        android:label="@string/app_name"
        android:theme="@style/ThemeA.Theme" >
    </activity>

    <receiver android:name=".BootupReceiver" >
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </receiver>
    <receiver android:name=".ScreenOnoffReceiver" >
        <intent-filter>
            <action android:name="android.intent.action.SCREEN_OFF" />
            <action android:name="android.intent.action.SCREEN_ON" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </receiver>
    <activity
        android:name=".ux.user.UserActivityA"
        android:label="@string/title_activity_edit_keyphrase"
        android:theme="@style/AppTheme" >
    </activity>
    <activity
        android:name=".ux.user.UserActivityB"
        android:label="@string/title_activity_select_action" >
    </activity>
    <activity
        android:name="ux.user.UserActivityC"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.Material.Light" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

问题是 ux.user.UserActivityC 没有操作栏。

在您的 style.xml 文件中(即 style.xml(v21))

<style name="AppTheme" parent="android:Theme.Material.Light">
</style>

然后确保,您正在使用

扩展您的 activity
MainActivity extends ActionBarActivity

即使您使用 android:Theme,这也会显示 actionBar。Material.Light

另外建议在material设计中使用Toolbar widget。

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

参考这个,如何创建工具栏。它在 Material 设计中充当 ActionBar。 希望对您有所帮助!