@antihrust

Как изменить цвет линии AlertDialog?

Как изменить цвет линни с розового на любой другой?
val dialog = AlertDialog.Builder(requireContext(), R.style.AlertTheme)
                .setTitle(getString(R.string.enter_problem_reason))
                .setView(reasonEditText)
                .setCancelable(true)
                .setPositiveButton(getString(R.string.ok)) { dialog, _ ->
                    onReasonGiven(reasonEditText.text.toString())
                    hideKeyboardFrom(requireContext(), reasonEditText)
                    dialog.cancel()
                }
                .setNegativeButton(getString(R.string.cancel)) { dialog, _ ->
                    dialog.cancel()
                }
                .create()

        dialog.show()


Стиль:

<style name="AlertTheme" parent="Theme.AppCompat.Dialog.Alert">
        <item name="android:background">@color/color_gray_background</item>
        <item name="android:textColor">@color/white</item>
        <item name="android:textColorPrimary">@color/white</item>
    </style>


61093410ce985992153090.jpeg
  • Вопрос задан
  • 103 просмотра
Решения вопроса 1
Joker4567
@Joker4567
Android разработчик
Вижу что здесь используется reasonEditText, у которого по умолчанию применяется данный цвет розовый.
Решение:
для примера я создам reasonEditText программным способом, возможно он у вас так же создаётся либо через разметку, тогда нужно будет задавать backgroundTint и указывать в него @drawable/bg_edittext
val reasonEditText = EditText(requireContext())
            reasonEditText.setBackgroundDrawable(requireContext().getDrawable(R.drawable.bg_edittext))

            val dialog = AlertDialog.Builder(requireContext(), R.style.AlertTheme)
                .setTitle("Причина приостановки подписки")
                .setView(reasonEditText)
                .setCancelable(true)
                .setPositiveButton("Ок") { dialog, _ ->
                    dialog.cancel()
                }
                .setNegativeButton("Отмена") { dialog, _ ->
                    dialog.cancel()
                }
                .create()

            dialog.show()

bg_edittext.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">
            <solid android:color="@android:color/transparent" />
        </shape>
    </item>

    <item
        android:left="-2dp"
        android:right="-2dp"
        android:top="-2dp">
        <shape>
            <solid android:color="@android:color/transparent" />
            <stroke
                android:width="1dp"
                android:color="@color/error_red" />
        </shape>
    </item>
</layer-list>


@color/error_red <- здесь можете использовать свой цвет для изменения цвета линии

610a791f8b18a232178152.png
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы