2017-01-31 5 views
0

У меня есть следующий код:Ограничить AlertDialog Builder для двух линий макс в Android

AlertDialog.Builder b = new AlertDialog.Builder(MainActivity.this, R.style.AppDialogTheme); b.setTitle(R.string.opt_out_dialog_title); b.setMessage(R.string.opt_out_dialog_message); b.show();

Моя строка: R.string.opt_out_dialog_message отображает иногда две линии, а иногда и три линии, в диалоге. Мне интересно, есть ли способ ограничить его или исправить его до 2 строк max?

+0

Как насчет того, если размер превышает определенное количество символов, тогда «строка» + ..., поэтому он не будет превышать конкретную строку 2, но он также не отображает весь заголовок – OBX

+0

. AlertDialog не предоставляет никаких настройка для него –

ответ

2

Вы можете создать пользовательский вид и установить его в диалоговом окне на setContentView.
Или вы можете попробовать это, хотя это не официальная (не может работать во всех ОС, устройство):

Dialog dlg = b.show(); 
TextView tv = (TextView) dlg.findViewById(android.R.id.message); 
tv.setMaxLines(2); 

Надежда, что помогает.

+0

Почему бы не работать на всех ОС, устройствах? Можете ли вы объяснить плз. – AnixPasBesoin

+0

@AnixPasBesoin Это беспорядок. У некоторых устройств есть свои пусковые установки, такие как MIUI для xiaomi или Oxygen OS для One plus, и даже обычный код, который хорошо работает на других устройствах, падает на этих устройствах, так что это очевидно! – OBX

+1

предполагает, что в диалоговом окне есть TextView, называемый 'message', но, поскольку OBX сказал, что это беспорядок, некоторые устройства могут иметь свою собственную реализацию, которая использует другой макет. .. imho лучше создать собственный собственный класс диалога, чтобы убедиться, что макет - это то, что вы ожидаете. – trooper

 Смежные вопросы

  • Нет связанных вопросов^_^