在onCreateView()
我的Fragment
课程中,我正在创建并返回View
,需要根据的实际屏幕宽度和高度动态创建其内容Fragment
。
如果能够确定其中的宽度和高度,那将是最理想的onCreateView()
。这是因为在View
中构建时onCreateView()
,View
会向其添加许多子项,并且父级布局如何View
根据可用的宽度和高度将这些子项组织为列(以创建一种“流体”列容器)。
我想看到的LayoutParams
都包含在ViewGroup
传递给onCreateView()
,但宽度和高度似乎是常量,而不是特定的宽度和高度。
我会在布局阶段相信,在这个阶段(在正确Fragment
的onCreateView()
),没有宽度和高度可用?如果是这种情况,那么我怀疑我需要做的是分View
两个阶段构建容器:(1)首先向其添加子项,然后(2)将这些子项实际上组织View
到方法重写中的列中在知道宽度和高度时调用。
是的,你是对的。在片段的onCreateView()
宽度和高度尚不可用(均为0)。无需按照您所说的完全分两个阶段进行操作。我想您可以通过两种方式做到这一点:
没有自定义视图:可以ViewTreeObserver
在片段中使用以确定何时计算宽度和高度,然后计算子视图的大小并添加它们。
使用自定义视图:您可以按照前面提到的那样构建自定义视图,并onDraw()
可以添加子视图。在onDraw()
方法是宽度及唤起注意已经计算。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句