gpt4 book ai didi

android - 在 Fragment View 中获取组件的宽度和高度

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:50:26 40 4
gpt4 key购买 nike

我需要访问 Fragment View 中所有组件的已评估宽度和高度。所以我需要一些通知,告诉我 fragment 布局阶段的 View 已经完成。

在activity中我可以使用onWindowFocusChanged(boolean hasFocus)生命周期方法,但是fragment没有这个方法。

我发现的唯一方法是使用 getView().addOnLayoutChangeListener()。但它调用了多次,只有最后一次调用对我有用。

在 fragment 的 View 中完成布局后,是否存在更好的调用方法?

最佳答案

您实际上可以手动触发布局传递 - 您只需使用适当的 MeasureSpecs 调用 View.measure(int,int)。例如,如果 fragment 要附加到父 View parentView,并且您希望它具有相同的大小,您可以这样做:

View fragmentView = fragment.getView();
fragmentView.measure(MeasureSpec.makeMeasureSpec(parentView.getMeasuredWidth(),
MeasureSpec.EXACTLY),
MeasureSpec.makeMeasureSpec(parentView.getMeasuredHeight(),
MeasureSpec.EXACTLY));

有关测量/布局过程如何工作的更多信息:http://developer.android.com/reference/android/view/View.html#Layout

关于android - 在 Fragment View 中获取组件的宽度和高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10409185/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com