Android - Как ограничить ширину LinearLayout - PullRequest
1 голос
/ 14 августа 2011

Я пытаюсь ограничить ширину LinearLayout до 400dp или меньше. Другими словами, если механизм компоновки определяет, что LinearLayout будет 320dp, я не хочу ничего менять, но если он определит, что он будет 480dp, я хочу уменьшить его до 400dp.

Я перепробовал все, что мог, чтобы это произошло. Моя последняя попытка состояла в том, чтобы создать пользовательское представление, унаследованное от LinearLayout, и переопределить метод onMeasure для установки пользовательских измерений, однако проблема, с которой я сталкиваюсь, заключается в том, что, хотя фактическая ширина LinearLayout уменьшает все представления внутри него (т.е. кнопки и т. д.) по-прежнему расположены так, как если бы ширина никогда не менялась, поэтому они обрезаются сбоку.

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

1 Ответ

0 голосов
/ 14 августа 2011

Вы должны проверить getMeasuredWidth().Если это больше, чем вы хотите, setLayoutParams() с правильной шириной.Помните, что в Java единицы измерения представлены в пикселях, поэтому вам необходимо правильно их масштабировать.

...