Android 获取视图尺寸的最佳实践,可能是在将其绘制到屏幕之前
对于人们在检索视图的高度和宽度时遇到的问题,我看到了大量不同的问题和答案,尤其是线程 以下是检索视图标注的方法:Android 获取视图尺寸的最佳实践,可能是在将其绘制到屏幕之前,android,view,height,width,dimensions,Android,View,Height,Width,Dimensions,对于人们在检索视图的高度和宽度时遇到的问题,我看到了大量不同的问题和答案,尤其是线程 以下是检索视图标注的方法: 活动中的onWindowFocusChanged() 对正在使用的视图类型进行子类化,并覆盖onSizeChanged()、onLayout()或onMeasure() 使用ViewTreeObserver和addOnGlobalLayoutListener() 在某些情况下,它们似乎都起作用,而在另一些情况下,人们会说有些东西不能正常工作。由于视图类没有setOnDimension
我可以发布代码来帮助进一步解释示例。好的方法是向视图中添加一个
OnGlobalLayoutListener()
,如中所述(您问题中的第3点,我认为这对于任何视图来说都是最可靠的)。我为一个PopupWindow
所做的方法是将其布局充气,然后在其上调用measure
:
popupView = getActivity().getLayoutInflater().inflate(R.layout.popup_layout, null);
popup = new PopupWindow(popupView, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, true);
popupView.measure(view.getMeasuredWidth(), view.getMeasuredHeight()); //the view is parent's layout (not sure if those are correct values, but it measures okay in my case)
然后通过调用popupView.getmeasuredhight()
和.getMeasuredWitdh()
获取数字
您的问题可能早已过去,但希望其他人会偶然发现这一点,并发现它很有帮助。:)