在onActivityCreated()之前或之后调用onDraw()?

时间:2016-12-03 15:07:40

标签: android android-fragments android-canvas android-view ondraw

我正在片段的$.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()方法?

1 个答案:

答案 0 :(得分:4)

首先调用

onActivityCreated()。稍后会调用onActivityCreated()onSizeChanged()onLayout()。 “视图层次结构实例化”所指的文档是创建视图(它们各自的构造函数被调用),您可以使用onDraw()来获取对视图的引用。这就是全部。

这有什么意义?好吧,这意味着您无法获得findViewById()中视图的widthheight。它只会返回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