Android: сохранить размер кнопки при изменении текста - PullRequest
3 голосов
/ 24 октября 2010

У меня есть, например, кнопка «Воспроизведение / Пауза», и я бы хотел, чтобы ее размер не менялся при изменении текста с «воспроизведения» на «паузы» и обратно.Из-за интернационализации я не знаю, будет ли «play» или «pause» более длинной строкой.

Я думаю, мне нужно установить строку на самую длинную строку, а затем создать кнопку, позволяющую пользовательскому интерфейсуизмените его размер, затем получите его высоту / ширину и установите высоту / ширину таким образом, чтобы он не менялся при изменении текста кнопки на более короткую строку.Но я не уверен, как / где в коде это сделать или есть ли более простой способ сделать это автоматически.

1 Ответ

4 голосов
/ 24 октября 2010

Большинство шрифтов будут отображать символы разных размеров, поэтому, например, ширина буквы «a» не равна ширине буквы «m».Небольшое количество шрифтов отлично с этим справляется, но большинство выглядит хорошо, потому что они имеют буквы разных размеров.

Так что я думаю, что ваши варианты:

  1. Принудительный размер кнопки, установите его в кнопке в макете, например, android: layout_width = "250dp"

  2. Используйте изображение значка вместо текста, если вы можете найти изображения, которые являются межкультурными.Я ожидаю, что большинство медиапроигрывателей используют значки специально, чтобы избежать этого.

Если вы обнаружите, что разные языки сильно различаются, вы можете использовать некоторые из них в особых случаях и использовать кнопки большего размера для определенных языков., но простой вариант, как правило, лучший, поэтому если бы это был я, я бы сделал один из двух выше, но что бы вы ни предполагали, текстовые строки с одинаковым количеством символов будут отображать одинаковую ширину, это редко бывает.

...