当前位置: 首页 > news >正文

畅想网络网站建设推广推荐就业的培训机构

畅想网络网站建设推广,推荐就业的培训机构,北京注册公司需要什么资料,wordpress 验证表单系列文章目录 文章目录 一、 从0开始实现 onCreate 的setContentView二、 从0 开始实现 onMeasure三、 从0 开始实现 onLayout四、 从0 开始实现 onDraw总结 前言 接上文,测量完View树的每个节点View的宽和高后,开始布局。 一、ViewRootImpl 的调用栈…

系列文章目录

文章目录
  • 一、 从0开始实现 onCreate 的setContentView
  • 二、 从0 开始实现 onMeasure
  • 三、 从0 开始实现 onLayout
  • 四、 从0 开始实现 onDraw
  • 总结

前言

接上文,测量完View树的每个节点View的宽和高后,开始布局。

一、ViewRootImpl 的调用栈

ViewRootImpl->performLayout(lp, mWidth, mHeight);

                        host.layout()

ViewGroup -> layout(int l, int t, int r, int b)

View -> layout(int l, int t, int r, int b)

View ->setFrame(l, t, r, b)

           onLayout(changed, l, t, r, b)

DecorView-> onLayout(changed, l, t, r, b)

FrameLayout->onLayout()

                        layoutChildren()

二、布局每个View

View.java  layout() 函数先设置自己的 left, right, top, bottom ,再做onLayout动作, onLayout的意图是布局 子控件。 view 已经没有子控件了, 所以 view的onLayout 什么也不做。

protected int mLeft;protected int mRight;protected int mTop;protected int mBottom;public void layout(int l, int t, int r, int b) {boolean changed = isLayoutModeOptical(mParent) ?setOpticalFrame(l, t, r, b) : setFrame(l, t, r, b);if (changed || (mPrivateFlags & PFLAG_LAYOUT_REQUIRED) == PFLAG_LAYOUT_REQUIRED) {onLayout(changed, l, t, r, b);
}}protected boolean setFrame(int left, int top, int right, int bottom) {...mLeft = left;mTop = top;mRight = right;mBottom = bottom;...
}protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
}

由于 ViewGroup 的 onLayout 是虚函数, 所以 ViewGroup 需要实现自己的onLayout

   public final void layout(int l, int t, int r, int b) {if (!mSuppressLayout && (mTransition == null || !mTransition.isChangingLayout())) {if (mTransition != null) {mTransition.layoutChange(this);}super.layout(l, t, r, b);} else {// record the fact that we noop'd it; request layout when transition finishesmLayoutCalledWhileSuppressed = true;}
}protected abstract void onLayout(boolean changed,int l, int t, int r, int b);

总结:

View 树的布局实际是给 每个view子节点的 mLeft, mTop, mRight, mBottom 四个成员变量赋值, 这四个成员变量代表 了 view 这个矩形框的位置和大小。

http://www.15wanjia.com/news/176275.html

相关文章:

  • 建设网站哪家专业一些有趣的网站
  • 网站开发框架文档seo有什么作用
  • 微信公众平台官网网址佛山网站seo公司
  • 网站推广的手段重庆怎样网站推广
  • 注册网站显示lp或设备超限怎么办根据域名查询网站名称
  • 深圳欧啦啦网站建设seo外链在线工具
  • 网站开发培训费多少济南seo优化公司
  • wordpress单页视差seo研究中心培训机构
  • 浙江建设工程造价信息网站阿里云可以做电影网站吗
  • 抚松做网站装修网站设计案例
  • 做网站的一般尺寸wordpress调用字段
  • 电子商务网站开发基本流程wordpress模板宠物
  • 全flash网站网站建设案例模板
  • 石岩企业网站建设百度怎么推广
  • 台州seo网站推广费用.net做网站的优缺点
  • 做商务网站服务长沙网站seo报价
  • 建设银行对账网站网页设计实训报告总结1500字
  • 电脑店免费建站WordPress跳转之间乱码
  • 软件 行业门户网站淄博网站建设服务商
  • 做网站要注意什么个人网站设计论文的结论
  • 如何建设影视网站首页韩国化妆品网站模板
  • 英文网站建设 潍坊简述你对于网站建设的认识
  • 网站后台更新后主页不显示运营什么网站好
  • 做网站什么框架方便网站曝光率
  • 网站建设实用教程工程建设项目网站
  • 网站建站 seo管理咨询岗位做什么
  • 地板网站模板免费下载wordpress导航下拉菜单
  • php创建一个网站沈阳网站设计营销型
  • 做网站需要会的软件发广告平台有哪些
  • 专业网站设计力荐亿企邦快云助手网站建设视频