以编程方式设置后获取android view按钮的宽度

时间:2018-10-26 02:30:58

标签: android view

在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 :(得分:0)

没有运行代码,但是以下方法可能有效:

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