一、基本定义与作用
当某个视图的`layout_width`或`layout_height`被设置为fill_parent 时,该视图会强制扩展自身尺寸,使其与父容器的对应方向尺寸保持一致。例如,若父容器的宽度为300dp,子视图设置`android:layout_width="fill_parent"`后,其宽度也会变为300dp,忽略自身内容的实际大小。 代码示例: ```xml``` 上述代码中,TextView的宽度会填满LinearLayout的宽度,而高度则根据文本内容自适应。
二、与match_parent的关系
需要意的是,fill_parent在API Level 8Android 2.2中被重命名为match_parent。两者在功能上全一致,均表示填充父容器空间。官方推荐使用match_parent 以更直观地体现“匹配父容器尺寸”的含义,但fill_parent仍可兼容旧版本代码。三、应用场景
- 全屏布局:如Activity的根布局设置`layout_width="fill_parent"`和`layout_height="fill_parent"`,使其占据整个屏幕。
- 自适应父容器:当子视图需要跟随父容器尺寸变化时如旋转屏幕,避免布局错乱。
- 占满剩余空间:在LinearLayout中,若某个子视图设置为fill_parent,其他视图将被挤压到边缘或法显示需结合权重属性`layout_weight`使用。
四、与wrap_content的区别
- fill_parent/match_parent:强制匹配父容器尺寸,忽略自身内容大小。
- wrap_content:根据自身内容自适应尺寸,仅占据必要空间。
对比示例:
```xml
``` 按钮1会填满父容器宽度,按钮2仅显示“按钮2”文本所需的最小宽度。
fill_parent作为Android布局的基础属性,其核心作用是实现视图与父容器的尺寸绑定。尽管已被match_parent替代,理其原理仍对掌握Android布局逻辑至关重要。在实际开发中,需根据界面需求灵活选择fill_parent/match_parent或wrap_content,结合布局管理器如LinearLayout、RelativeLayout实现多样化的UI效果。
