Получение ширины кнопки просмотра 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;
}
Другие вопросы по тегам