Получение ширины кнопки просмотра android после ее программной установки

Во время моего oncreate у меня нарисована кнопка. Я вернулся и изменил его размер как часть метода 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
0
21
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Код не запускался, но может сработать следующее:

public Void getwidth{
    ConstraintLayout.LayoutParams newLayoutParams = (ConstraintLayout.LayoutParams) btnx21.getLayoutParams();
    return newLayoutParams.width;
}

Другие вопросы по теме