我需要访问已评估的片段视图中所有组件的宽度和高度。所以我需要一些告诉我的通知,片段布局阶段的视图已经完成。获取片段视图中组件的宽度和高度
在活动中我可以使用onWindowFocusChanged(boolean hasFocus)
生命周期方法,但片段没有这个方法。
我发现的唯一方法是使用getView().addOnLayoutChangeListener()
。但它多次呼叫,只有上次呼叫对我有用。
存在任何更好的方式如何在片段的视图中完成布局后调用一些?
我需要访问已评估的片段视图中所有组件的宽度和高度。所以我需要一些告诉我的通知,片段布局阶段的视图已经完成。获取片段视图中组件的宽度和高度
在活动中我可以使用onWindowFocusChanged(boolean hasFocus)
生命周期方法,但片段没有这个方法。
我发现的唯一方法是使用getView().addOnLayoutChangeListener()
。但它多次呼叫,只有上次呼叫对我有用。
存在任何更好的方式如何在片段的视图中完成布局后调用一些?
您实际上可以手动触发布局传递 - 您只需使用适当的MeasureSpecs调用View.measure(int,int)
即可。例如,如果这个片段被连接到父视图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
相关问题http://stackoverflow.com/questions/14397959/capture-layout-resize-before-api-11 –