Установить текст сообщения в соответствии с шириной AlertDialog - PullRequest
0 голосов
/ 20 января 2019

Я применяю жестко запрограммированное значение ---- в тело сообщения пользовательского AlertDialog.В моем устройстве он хорошо вписывается, так как я использовал его размеры, как показано ниже:

Normal device

Однако на устройстве с большим экраном оно определенно будет выглядеть по-другому:это:

enter image description here

и код для создания диалога:

new AlertDialog.Builder(context)
    .setTitle("Title goes here...")
    .setMessage("-------------------------------")
    (…)

Я могу использовать DisplayMetrics, чтобы получить ширинудиалога, но как мне теперь применить ширину, пойманную к фактическому сообщению?

DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
final int DisplayWidth = displayMetrics.widthPixels;

Ответы [ 3 ]

0 голосов
/ 20 января 2019

Я думаю, вы хотите показать layout.xml в alertDialog. И примените как в этот пример . Вы можете поместить ImageView вместо строки.

0 голосов
/ 20 января 2019

Если вы хотите, чтобы в сообщении диалогового окна была только одна строка, установите сообщение

"-------------------------......"

должно быть более чем достаточно для строки любого устройства.
Сообщение AlertDialog - это TextView, которое можно найти с помощью findViewById() и вызвать его метод setSingleLine(true) или setlines(1).

    AlertDialog ad = new AlertDialog.Builder(context).create();
    TextView message = ad.findViewById(android.R.id.message);
    message.setSingleLine(true);
    ad.setTitle("Title goes here...");
    ad.setMessage("----------------------.....");
    ad.show();
0 голосов
/ 20 января 2019

вы можете создать xml для пользовательского AlertDialog и в заголовке и в строке ниже укажите файл XML (View Tag with layout_heigh = "1dp" layout_width = "match_parent").

...