Почему у моего Android-приложения нет иконки и текста в ActionBar?

Я новичок в разработке Android, и я пытаюсь создать свою тему, но у меня есть проблема. Я попробовал найти ответы на google, d.android, но безрезультатно.

ActionBar меняет цвет (это нормально), но текст и значок приложения не отображаются (только если я использую мою тему – если я использую тему по умолчанию, все в порядке). Зачем?

Res / values ​​/ styles.xml :

 <resources xmlns:android="http://schemas.android.com/apk/res/android"> <style name="AppBaseTheme" parent="android:Theme.Light"> </style> <!-- Application theme. --> <style name="AppTheme" parent="AppBaseTheme"> <item name="android:actionBarStyle">@style/MyActionBar</item> </style> <style name="MyActionBar" parent="AppTheme"> <item name="android:background">HEX COLOR</item> <item name="android:titleTextStyle">@style/MyTitleTextStyle</item> </style> <style name="MyTitleTextStyle" parent="AppTheme"> <item name="android:textColor">#FFFFFF</item> </style> </resources> 

Вот мой AndroidManifest.xml

  <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.appname" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="11" android:targetSdkVersion="18" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.appname.Intro" 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> </manifest> 

Я вижу, что вы используете AppTheme как родительский для стиля MyActionBar, и он вызывает круговую зависимость. MyActionBar -> AppTheme -> MyActionBar … Вы должны использовать android:Widget.ActionBar или аналогичный родительский android:Widget.ActionBar вашей панели действий.

Также должен быть android:Theme.Holo.Light вместо android:Theme.Light как родительский AppBaseTheme .

Вот как выглядит файл res / values ​​/ styles.xml :

 <resources xmlns:android="http://schemas.android.com/apk/res/android"> <style name="AppBaseTheme" parent="android:Theme.Holo.Light"/> <!-- Application theme. --> <style name="AppTheme" parent="AppBaseTheme"> <item name="android:actionBarStyle">@style/MyActionBar</item> </style> <style name="MyActionBar" parent="android:Widget.ActionBar"> <item name="android:background">HEX COLOR</item> <item name="android:titleTextStyle">@style/MyTitleTextStyle</item> </style> <style name="MyTitleTextStyle" parent="AppTheme"> <item name="android:textColor">#FFFFFF</item> </style> </resources> 

Msgstr "Вы должны добавить следующий код в метод onCreate ().

 getSupportActionBar().setDisplayShowHomeEnabled(true); getSupportActionBar().setIcon(R.drawable.ic_launcher); "