Android 5 SDK)からActionBarActivityを使用しています。これはv21のtheme.xmlです
<style name="AppTheme_Light" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="Android:colorPrimary">@color/abc1</item>
<item name="Android:colorPrimaryDark">@color/abc2</item>
<item name="Android:colorAccent">@color/abc3</item>
</style>
しかし、色は無視され、デフォルトの青緑色に置き換えられ、すべてのダイアログはパディングなしで表示されます。
問題http://i62.tinypic.com/21cebcz.png
また、カスタムトーストなどの他の場所でもパディングは無視されます。問題はLollipopデバイスでのみ発生します。
編集:
パディングの問題はfitsSystemWindow
が原因でした。
この質問。 。
しかし、アクセント色の問題は依然として存在し、ダイアログだけでなくアプリ全体に影響します。
アクセントカラーについて。 AppCompatテーマを使用しているため、テーマ内のネームスペースからAndroidを削除する必要があります。
<style name="AppTheme_Light" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/abc1</item>
<item name="colorPrimaryDark">@color/abc2</item>
<item name="colorAccent">@color/abc3</item>
</style>
ダイアログについて。 AppCompatはサポートしていません(私が知っているように)。
values-v21フォルダーでこのスタイルを使用できます。
<style name="Theme" parent="FrameworkRoot.Theme">
<item name="Android:alertDialogTheme">@style/Theme.AlertDialog</item>
</style>
<style name="Theme.AlertDialog" parent="Android:Theme.Material.Light.Dialog.Alert">
<item name="Android:colorPrimary">@color/demo_primary_color</item>
<item name="Android:colorPrimaryDark">@color/demo_colorPrimaryDark</item>
<item name="Android:colorAccent">@color/theme_accent_1</item>
</style>
2015年4月23日更新:サポートライブラリV.22.1
新しい support library v22.1
はダイアログで動作します。 Android.support.v7.app.AlertDialog または新しい AppCompatDialog を使用できます。
例えば:
import Android.support.v7.app.AlertDialog
AlertDialog.Builder builder =
new AlertDialog.Builder(this, R.style.AppCompatAlertDialogStyle);
builder.setTitle("Dialog");
builder.setMessage("Lorem ipsum dolor ....");
builder.setPositiveButton("OK", null);
builder.setNegativeButton("Cancel", null);
builder.show();
そして、次のようなスタイルを使用します。
<style name="AppCompatAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert">
<item name="colorAccent">#FFCC00</item>
<item name="Android:textColorPrimary">#FFFFFF</item>
<item name="Android:background">#5fa3d0</item>
</style>
それ以外の場合は、現在のテーマで定義できます。
<style name="AppTheme" parent="Theme.AppCompat.Light">
<!-- your style -->
<item name="alertDialogTheme">@style/AppCompatAlertDialogStyle</item>
</style>
そしてあなたのコードで:
import Android.support.v7.app.AlertDialog
AlertDialog.Builder builder =
new AlertDialog.Builder(this);
更新
AppCompatダイアログのテーマに色を適用しました。誰かに役立つかもしれません:
values/style.xml
<style name="Theme.MyApp" parent="Theme.AppCompat.Light">
...
/* for Android 4 - 4.4, we not define alert dialogs style */
</style>
values-v21/style.xml
<style name="Theme.MyApp" parent="Theme.AppCompat.Light">
...
/* define alert dialog style for Android 5 */
<item name="Android:alertDialogTheme">@style/Theme.AlertDialog</item>
</style>
<style name="Theme.AlertDialog" parent="Theme.AppCompat.Light.Dialog">
<!--app abar color in Activties Task manager -->
<item name="colorPrimary">@color/my_color</item>
<!--copy/paste colors -->
<item name="colorAccent">@color/my_color</item>
<!--status bar color -->
<item name="colorPrimaryDark">@color/my_color</item>
</style>
AppCompatの現在のバージョンは、AlertDialogsに色付けを適用しません。
https://github.com/afollestad/material-dialogs を使用してみてください、うまくいきます!