在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();
}
谢谢。
答案 0 :(得分:0)
没有运行代码,但是以下方法可能有效:
public Void getwidth{
ConstraintLayout.LayoutParams newLayoutParams = (ConstraintLayout.LayoutParams) btnx21.getLayoutParams();
return newLayoutParams.width;
}