1 布局参数
部分属性名以“layout_”开头,如android:layout_marginLeft,而其他属性名称则不是。
名称不以“layout_”开头的属性作用于组件。组件生成时,会调用某个方法按照属性及属性值进行自我配置;
名称以“layout_”开头的属性则作用于组件的父组件。并称这些属性为布局参数。它们负责告知父组件如何在内部安排自己的子组件。也就是说,只要包含布局参数,就说明它有自己的父组件。
2 内边距和外边距
内边距:android:padding
外边距:android:layout_marginXXX
如第一点中描述的,外边距是要告诉父组件,在布局子组件的时候,某个边缘间距多少。内边距的含义是,在绘制自身时,要比所含内容大多少。
3 为默认生成的布局添加对应的水平模式
当屏幕旋转的时候,默认生成的布局会发生相应的旋转,但是机械地对部分组件进行拉伸和重新调整自己和自己的子组件。如何根据自己的需要有效地对水平模式的布局进行调整?要实现这一点,可以尝试如下步骤:
- 需创建res/layout-land目录,将res/layout目录下的布局文件复制至res/layout-land目录;
- 通过变更res/layout-land目录下的布局文件,达到自主修改水平布局的目的。
4 android:layout_weight属性的工作原理
该属性告知LinearLayout(父组件)如何进行子组件的布置排布。在决定子组件视图的显示宽度时,LinearLayout使用的是layout_weight和layout_width的混合值。主要分以下两步完成:
- LinearLayout查看layout_width属性值(垂直方向查看layout_height属性值)。假设当前有一个水平的LinearLayout,其中包含了两个子组件:Button和CheckBox,并且它们显示的文字信息长度不同,并且它们在各自wrap_content的情况下,不能填充整个LinearLayout,依次排布之后还有额外的空间(extra space)。
- LinearLayout检查layout_weight属性值。依据layout_weight属性值,LinearLayout把额外的空间,按照比例分配给每一个子组件。
时间: 2024-12-21 17:26:23