PercentLayout 百分比布局记录

PercentLayout

百分比布局,控制子view 在布局文件占用的大小,多适配方案的一种比较好的选择。

拥有的属性:

  • layout_widthPercentlayout_heightPercent

    宽、高 占比

  • layout_marginPercent

    支持margin,设置边距,该控件相对于父控件的边距,使用起来更方便。

  • layout_marginStartPercentlayout_marginEndPercent

    距离开始和结束的位置

  • layout_aspectRatio

    用于显示宽高比例,很有用处,当指定了宽或高的一边的长度或百分比后,会自动计算另一边的长度;
    例如当宽是match_percent时,可指定宽高比,便不需要考虑屏幕的适配问题;

    注:layout_aspectRatio的数值可超过100%,例如150%。

需注意的地方

  • 目前有两种PercentLayout--->PercentRelativeLayoutPercentFrameLayout两种。

    在第一个参考里,详细说了具体的实现,及PercentLayoutHelper的作用

    • 将现有的组件支持百分比控制 child view 的宽和高
    • fetchWidthAndHeight()方法
    • adjustChildren()
  • 需要设置宽高占比时,需要同时设置android:layout_width="0dp" android:layout_height="0dp"

  • 有时父view最大能提供的空间小于控件需要的空间,会给测量结构的高两位加上相应的状态表示MEASURED_STATE_TOO_SMALL, 会调用handleMeasuredStateTooSmall()处理,将宽和高重新按照wrap_content来测量。

写在最后

PercentLayout适用于在项目中适配多种机型问题,可对标准屏进行百分比布局,然后测试其他屏幕的时候,对特殊屏幕(会出现问题)进行特殊处理。

参考链接:percentLayout的原理及扩展

有错误,请指出,谢谢您!

你可能感兴趣的:(PercentLayout 百分比布局记录)