У меня есть семь кнопок в вертикальной цепочке, используя макет ограничения по горизонтали.
Во время выполнения я изменяю размер моих кнопок так, чтобы они помещались между панелью приложения и панелью навигации.Я также размещаю горизонтальную направляющую (guide1), чтобы начать в нижней части панели приложения, а другую направляющую, guide2, в верхней части панели навигации.Я ограничил верхнюю кнопку (1 или 7) направляющей 1, а нижнюю кнопку (7 из 7) - направляющей 2.
В течение того же времени выполнения я могу вытянуть новую ширину кнопкивызывая следующий метод.
int getwidth(Button btn){
ConstraintLayout.LayoutParams newLayoutParams = (ConstraintLayout.LayoutParams) btn.getLayoutParams();
int btnwidth=newLayoutParams.width;
return btnwidth;
}
Я также пытаюсь получить экранные координаты каждой из кнопок, после того как я измерил их размеры, как описано выше.Я пытался использовать btn.getTop ();но результаты возвращаются неверно.
Я подозреваю, что он вытягивает число, основанное на настройках ограничений в моем xml.В конечном итоге я пытаюсь получить координаты центра каждой из кнопок.Я использую ширину сверху (кнопки - круги) и добавлю к ним координаты для расчета центров.Заранее спасибо за любую помощь.