我正在片段的$.fn.showAllSelectOpts=function() {
$(this).on('focus',()=>{
$(this)
.css('height','auto')
.attr('size',$(this).children().length)
.focusout(()=>{
$(this).attr('size','1');
});
});
};
$('select').showAllSelectOpts();
中展开布局。此布局包含自定义视图。现在onCreateView()
的{{3}}表示它是“在创建片段的活动时调用此片段的视图层次结构实例化”。这意味着布局被夸大,布局中的视图在onActivityCreated()
之前创建。
这是否意味着在onActivityCreated()
之前调用视图的onLayout()
,onSizeChanged()
和onDraw()
方法?
答案 0 :(得分:4)
否强>
首先调用 onActivityCreated()
。稍后会调用onActivityCreated()
,onSizeChanged()
和onLayout()
。 “视图层次结构实例化”所指的文档是创建视图(它们各自的构造函数被调用),您可以使用onDraw()
来获取对视图的引用。这就是全部。
这有什么意义?好吧,这意味着您无法获得findViewById()
中视图的width
或height
。它只会返回0。
以下是调用方法的顺序:
1 - >
onActivityCreated()
-Fragment
2 - >onCreateView()
-View
//构造函数
3 - >CustomView()
-Fragment
4 - >onViewCreated()
-Fragment
5 - >onActivityCreated()
-Fragment
6 - >onResume()
-View
7 - >onMeasure()
-View
8 - >onSizeChanged()
-View
9 - >onLayout()
-View