1

私の問題はAndroidアプリでandroid:Theme、デフォルトのスタイルとして、android:Theme.Holo.Lightバージョン11以降のOSとandroid:Theme.Holo.Light.DarkActionBarv14以降で使用されます。

アプリプロジェクトはADTEclipse-wizzardを使用して作成されたため、AndroidManifest.xmlセットandroid:theme="@style/AppTheme"、および3つのstyles.xmlファイルがありvalues、それぞれ、、、values-v11およびvalues-v14フォルダーに1つずつあります。デフォルトstyles.xmlセット

<style name="AppBaseTheme" parent="android:Theme">

セットstyles.xmlで_values-v11

<style name="AppBaseTheme" parent="android:Theme.Holo.Light">

そして最後styles.xmlvalues-v14セットで

<style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar">

これはかなり長い間うまく機能しました。GalaxySIIIのエミュレーターとHolo-themeを使用してジンジャーブレッドの外観を確認しました。

しかし今では、Samsungの電話も、sに何を設定しても、クラシックなandroid:Themeのみを使用しstyle.xmlます。minSdkVersionまた、 inAndroidManifest.xmlを16に上げて、Holo-themeをデフォルトに設定しようとしましたstyles.xml。クリーンアップと再構築も効果がありませんでした。

ホロのテーマはアプリによって喜んで無視され、他にどこで問題を解決できるかわかりません。

ヘルプやポインタは大歓迎です。

アップデート

交換した場合

android:theme="@style/AppTheme"

AndroidManifest.xml_

android:theme="@style/AppBaseTheme"

すべてが正常に機能します(AppBaseThemeカスタマイズされたプラットフォームに依存しない、プラットフォームに依存する親テーマですAppTheme)。どういうわけか、Androidランタイムは怠惰であり、の最も具体的なバージョンを探す必要はありませんAppBaseThemeが、常にで見つかったものを使用しているように見えますvalues/styles.xml

4

1 に答える 1

1

最後に、クリーンアップに何度か失敗した後、別のアプローチを取り、名前をに変更しようとしAppThemeましたMyTheme(それに応じて参照を更新しましたAndroidManafest.xml)。これで、アプリはAndroidのバージョンごとに正しいAppBaseThemeを参照します。

于 2012-12-11T14:53:06.053 に答える