我想用AndroidStudio和新的材料设计开发Android应用程序,它在Android 5.0上看起来很棒但是当我在4.4.2手机上测试应用程序时,应用程序的ActionBar丢失了.
这是我的清单:
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/MyTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
Run Code Online (Sandbox Code Playgroud)
styles.xml
<resources>
<!-- Base application theme. -->
<style name="MyTheme" parent="Theme.AppCompat.Light">
</style>
Run Code Online (Sandbox Code Playgroud)
和build.gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "21.0.0"
defaultConfig {
applicationId "com.example.app"
minSdkVersion 14
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:+'
}
Run Code Online (Sandbox Code Playgroud)
你知道错误在哪里吗?
谢谢!西蒙
Com*_*are 13
要使用appcompat-v7操作栏backport,您需要继承您的活动ActionBarActivity.
如果您当前没有使用AppCompat,或者您是从头开始,那么以下是如何设置它:
- 您的所有活动都必须从ActionBarActivity扩展.它从v4支持库中的FragmentActivity扩展,因此您可以继续使用片段.
- 您的所有主题(需要操作栏/工具栏)都必须从Theme.AppCompat继承.有可用的变种,包括Light和NoActionBar.
- 为要在操作栏上显示的任何内容(例如操作栏中的列表导航的SpinnerAdapter)进行充气时,请确保使用通过getSupportActionBar().getThemedContext()检索的操作栏的主题上下文.
- 您必须使用MenuItemCompat中的静态方法对MenuItem上的任何与操作相关的调用.
更新:请注意Google正在迁移到AppCompatActivity.ActionBarActivity作品 - 它只是一个无用的子类AppCompatActivity- 但AppCompatActivity如果你打算使用appcompat-v7动作栏后退,你可以通过直接扩展来获得更好的服务.