1. ホーム
  2. android

[解決済み] appCompat 22.1以降の新しいAlertDialogの使用方法とスタイルについて

2022-04-25 01:42:42

質問

デフォルトのandroidから移行しようとしています。 AlertDialog を appCompat-22.1 に含まれる新しいものに変更しました。 これまでのところ、私はあなたが android.support.v7.app.AlertDialog パッケージを使用することができます。

しかし、どのようにスタイルを設定すればよいのでしょうか?例えば、ボタンの色、タイトルの色、メッセージの色、背景の色などを変更することができますか?

どのように解決するのですか?

を作成する際に AlertDialog では、使用するテーマを設定することができます。

例 - ダイアログを作成する

AlertDialog.Builder builder = new AlertDialog.Builder(this, R.style.MyAlertDialogStyle);
builder.setTitle("AppCompatDialog");
builder.setMessage("Lorem ipsum dolor...");
builder.setPositiveButton("OK", null);
builder.setNegativeButton("Cancel", null);
builder.show();

styles.xml - カスタムスタイル

<style name="MyAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert">
    <!-- Used for the buttons -->
    <item name="colorAccent">#FFC107</item>
    <!-- Used for the title and text -->
    <item name="android:textColorPrimary">#FFFFFF</item>
    <!-- Used for the background -->
    <item name="android:background">#4CAF50</item>
</style>

結果

編集

タイトルのアピアランスを変更するには、次のようにします。まず、新しいスタイルを追加します。

<style name="MyTitleTextStyle">
    <item name="android:textColor">#FFEB3B</item>
    <item name="android:textAppearance">@style/TextAppearance.AppCompat.Title</item>
</style>

でこのスタイルを参照し、その後 MyAlertDialogStyle :

<style name="MyAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert">
    ...
    <item name="android:windowTitleStyle">@style/MyTitleTextStyle</item>
</style>

この方法では、異なる textColor を使用してメッセージに android:textColorPrimary で、タイトルには別のスタイルを指定します。