2016-02-21 6 views
0

Я хочу создать динамическую матрицу кнопок - например, 5x6 на больших устройствах и 4x5 на более мелких устройствах. И я также хочу принять во внимание применяемый стиль (textSize, padding ..). Я могу загрузить размер шрифта и вычислить необходимое пространство для текста кнопки. Но требуется гораздо больше места.Как рассчитать ширину кнопки

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

+0

Вы можете установить layout_width в 0dp и использовать layout_weight = 1, вы пробовали это еще? – vilpe89

+0

Мне не нравится onGlobalLayout, иногда триггер, и я не знаю, почему LOL. Поэтому я делаю customView и переопределяю метод onSizeChanged. – king

+0

@ vilpe89 Это не имеет значения. Мне нужно рассчитать, будут ли три или четыре кнопки в строке. –

ответ

0

я выкопал в ViewGroup и порядок расположения и это результат:

Button button = inflateButton(); 
button.setText(logic.getText()); 
button.measure(500, 500); 
int tileWidth = button.getMeasuredWidth(); 
Смежные вопросы