码迷,mamicode.com
首页 > 移动开发 > 详细

[android](学习笔记2)深入xml布局属性

时间:2015-03-09 23:40:16      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:

1 布局参数

部分属性名以“layout_”开头,如android:layout_marginLeft,而其他属性名称则不是。

名称不以“layout_”开头的属性作用于组件。组件生成时,会调用某个方法按照属性及属性值进行自我配置;

名称以“layout_”开头的属性则作用于组件的父组件。并称这些属性为布局参数。它们负责告知父组件如何在内部安排自己的子组件。也就是说,只要包含布局参数,就说明它有自己的父组件。

2 内边距和外边距

内边距:android:padding

外边距:android:layout_marginXXX

如第一点中描述的,外边距是要告诉父组件,在布局子组件的时候,某个边缘间距多少。内边距的含义是,在绘制自身时,要比所含内容大多少。

3 为默认生成的布局添加对应的水平模式

当屏幕旋转的时候,默认生成的布局会发生相应的旋转,但是机械地对部分组件进行拉伸和重新调整自己和自己的子组件。如何根据自己的需要有效地对水平模式的布局进行调整?要实现这一点,可以尝试如下步骤:

  1. 需创建res/layout-land目录,将res/layout目录下的布局文件复制至res/layout-land目录;
  2. 通过变更res/layout-land目录下的布局文件,达到自主修改水平布局的目的。

4 android:layout_weight属性的工作原理

该属性告知LinearLayout(父组件)如何进行子组件的布置排布。在决定子组件视图的显示宽度时,LinearLayout使用的是layout_weight和layout_width的混合值。主要分以下两步完成:

  1. LinearLayout查看layout_width属性值(垂直方向查看layout_height属性值)。假设当前有一个水平的LinearLayout,其中包含了两个子组件:Button和CheckBox,并且它们显示的文字信息长度不同,并且它们在各自wrap_content的情况下,不能填充整个LinearLayout,依次排布之后还有额外的空间(extra space)。
  2. LinearLayout检查layout_weight属性值。依据layout_weight属性值,LinearLayout把额外的空间,按照比例分配给每一个子组件。

 

[android](学习笔记2)深入xml布局属性

标签:

原文地址:http://www.cnblogs.com/leo-duduchen/p/4324707.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!