美文网首页
自定义View

自定义View

作者: 我默默 | 来源:发表于2021-02-03 08:53 被阅读0次

    定制 Layout 内部布局的方式

    1. 重写 onMeasure() 来计算内部布局
    2. 重写 onLayout() 来摆放子 View
      重写 onMeasure() 的三个步骤:
    3. 调用每个子 View 的 measure() 来计算子 View 的尺寸
    4. 计算子 View 的位置并保存子 View 的位置和尺寸
    5. 计算自己的尺寸并用 setMeasuredDimension() 保存
      计算子 View 尺寸的关键
      计算子 View 的尺寸,关键在于 measure() 方法的两个参数——也就是子 View 的
      两个 MeasureSpec 的计算。
      子 View 的 MeasureSpec 的计算方式:
      结合开发者的要求(xml 中 layout_ 打头的属性)和自己的可用空间(自己的
      尺寸上限 - 已用尺寸)
      尺寸上限根据自己的 MeasureSpec 中的 mode 而定
      EXACTLY / AT_MOST:尺寸上限为 MeasureSpec 中的 size
      UNSPECIFIED:尺寸无上限
      重写 onLayout() 的方式
      在 onLayout() 里调用每个子 View 的 layout() ,让它们保存自己的位置和尺
      寸。

    相关文章

      网友评论

          本文标题:自定义View

          本文链接:https://www.haomeiwen.com/subject/sboaoktx.html