1

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

如果我能够确定onCreateView(). 这是因为当在View内部构造时onCreateView(),会添加许多子View元素,以及父布局如何View根据可用的宽度和高度将这些子元素组织成列(以创建一种“流动”的列容器)。

我尝试查看传递给LayoutParams的内容,但宽度和高度似乎是常数,而不是特定的宽度和高度。ViewGrouponCreateView()

我是否相信,在布局阶段的这个阶段(在Fragment's内onCreateView()),没有可用的宽度和高度?如果是这种情况,那么我怀疑我需要做的是View分两个阶段构建我的容器:(1)最初将子项添加到其中,然后(2)实际上将这些子项组织View到方法覆盖中的列中当宽度和高度已知时调用。

4

1 回答 1

1

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

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

  2. 使用自定义视图:您可以按照您提到的那样构建自定义视图,并且onDraw()可以添加子视图。onDraw()方法是已经计算出宽度和高度。

于 2013-07-27T19:49:17.563 回答