get layout height and width at run time android

前端 未结 6 1253
死守一世寂寞
死守一世寂寞 2020-11-29 05:50

How can I get width and height of a linear layout which is defined in xml as fill_parent both in height and width? I have tried onmeasure method but I dont know why it is no

6条回答
  •  野趣味
    野趣味 (楼主)
    2020-11-29 06:36

    To get it work, you need to check whether the desired height value is bigger than 0 - and first then remove the onGlobalLayout listener and do whatever you want with the height. The listener calls its method continuously and by the first call it is not guaranteed that the view is measured properly.

        final LinearLayout parent = (LinearLayout) findViewById(R.id.parentView);
        parent.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {
                int availableHeight = parent.getMeasuredHeight();
                if(availableHeight>0) {
                    parent.getViewTreeObserver().removeGlobalOnLayoutListener(this);
                    //save height here and do whatever you want with it
                }
            }
        });
    

提交回复
热议问题