确定片段的onCreateView()中的宽度和高度

特雷弗

onCreateView()我的Fragment课程中,我正在创建并返回View,需要根据的实际屏幕宽度和高度动态创建其内容Fragment

如果能够确定其中的宽度和高度,那将是最理想的onCreateView()这是因为在View中构建时onCreateView()View会向其添加许多子项,并且父级布局如何View根据可用的宽度和高度将这些子项组织为列(以创建一种“流体”列容器)。

我想看到的LayoutParams都包含在ViewGroup传递给onCreateView(),但宽度和高度似乎是常量,而不是特定的宽度和高度。

我会在布局阶段相信,在这个阶段(在正确FragmentonCreateView()),没有宽度和高度可用?如果是这种情况,那么我怀疑我需要做的是分View两个阶段构建容器:(1)首先向其添加子项,然后(2)将这些子项实际上组织View到方法重写中的列中在知道宽度和高度时调用。

Koso

是的,你是对的。在片段的onCreateView()宽度和高度尚不可用(均为0)。无需按照您所说的完全分两个阶段进行操作。我想您可以通过两种方式做到这一点:

  1. 没有自定义视图:可以ViewTreeObserver在片段中使用以确定何时计算宽度和高度,然后计算子视图的大小并添加它们。

  2. 使用自定义视图:您可以按照前面提到的那样构建自定义视图,并onDraw()可以添加子视图。onDraw()方法是宽度及唤起注意已经计算。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章