【发布时间】:2019-11-12 23:28:45
【问题描述】:
在我的 android studio 项目中,我有一个片段(类是 MainFragment)和一个滚动视图。在 MainFragment 类中,我想获取事件,当片段已经布局它的子视图时。即我想调用一个方法scrollview.getHeight()而不是得到0,因为系统尚未计算scrollview的实际高度。有什么解决办法吗?
【问题讨论】:
在我的 android studio 项目中,我有一个片段(类是 MainFragment)和一个滚动视图。在 MainFragment 类中,我想获取事件,当片段已经布局它的子视图时。即我想调用一个方法scrollview.getHeight()而不是得到0,因为系统尚未计算scrollview的实际高度。有什么解决办法吗?
【问题讨论】:
在 @Resume 上完成所有工作,此时片段已创建并添加了布局,因此您应该有高度
@Override
public void onResume() {
super.onResume();
// your code here ...
}
【讨论】:
您可以使用onViewCreated 方法。它在创建视图时调用,因此您不会从那里获得 0 高度。
@Overrride
void onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
scrollView.doOnPreDraw {
println("Height: "+it.height)
println("Mesured Height: "+it.measuredHeight)
}
}
【讨论】: