Получение ширины кнопки просмотра Android после ее программной настройки
Во время моего создания у меня есть кнопка, которая нарисована. Я вернулся и изменил его размер как часть метода viewTreeObserver.OnGlobalLayoutListener(). Это прекрасно работает. В том же методе onGlobalLayouyListener, как я могу вернуться и получить ширину и высоту кнопки. Если я использую btn.getwidth, он возвращает настройки, которые у меня есть в моем xml, а не значение, которое я только что установил. Как я могу получить новую ширину и высоту кнопки.
mainlayout.getViewTreeObserver().addOnGlobalLayoutListener(
new ViewTreeObserver.OnGlobalLayoutListener() {
public void onGlobalLayout() {
Cyclebuttons(mainlayout);
getwidth();}
public void Cyclebuttons(ViewGroup parent) {
int btn2height= somenumber;
// set button width and height
ConstraintLayout.LayoutParams newLayoutParams = (ConstraintLayout.LayoutParams) btnx21.getLayoutParams();
newLayoutParams.width = btn2height;
newLayoutParams.height = btn2height;
btnx21.setLayoutParams(newLayoutParams);
}
public Void getwidth{
btnx21.getwidth();
}
Благодарю.
1 ответ
Решение
Не запускал код, но могло бы работать следующее:
public Void getwidth{
ConstraintLayout.LayoutParams newLayoutParams = (ConstraintLayout.LayoutParams) btnx21.getLayoutParams();
return newLayoutParams.width;
}