安卓(四):layout布局

一**、padding内补丁、margin外补丁的区别,以及与内容**
①padding意味着该属性所在的主控件中内部布局(子控件)的边距
②margin意味着该属性所在的主控件里外部布局(父控件)的边距
设置padding的好处:
如果imageview对应的图片比较小,点击不容易点中,通过增加padding可以增大点触敏感度

=======================================================================

二、线性布局(LinearLayout)
1、LinearLayout是一个view组(view group),其包含的所有子view都以一个方向排列,垂直或是水平方向
2、在LinearLayout使用gravity属性是操控它内部的控件的位置,而TextView使用gravity属性是操控控件中文字的位置,而不能控件本身在布局中的位置改变。
注意:
①LinearLayout中所有的子view依次排列,所以垂直列表的每一行只有一个子view,而不管行有多宽。水平列表只有一个行高(行高由最高子view的高度+padding(填充)来决定)。LinearLayout关注子view之间的margins(边缘)和每个子view的gravity(对齐方式,右、中间或是左对齐)。

②LinearLayout也支持用android:layout_weight属性为单个子view指定权重(weight)。这个属性为一个view指定一个非常重要的值,此值指定了该view需要占用屏幕上多大的空间。一个更大的权重值运行子view扩展到填充满其父view的剩余空间。子view能够指定权重值,然后view组中的剩余空间会按照声明的权重所占的比例来分配。默认的权重是0。

=======================================================================
三、android:gravity和android:layout_gravity的区别
1、 区别:
①android:gravity:控件内部的元素(对内有效)
② android:layout_gravity:控件所在父元素的位置(对外生效)
2、特殊情况:
①父元素的android:orientation=“vertical”,layout_gravity 水平设置的相关属性有效
②父元素的android:orientation=“horizontal”,layout_gravity 垂直设置的相关属性有效

==================================================================
四、线性布局(LinearLayout )【 Layout_weight属性的作用】
1、首先声明只有在Linearlayout中,layout_weight属性才有效。
2、 它是用来指定(剩余空闲空间)的分割比例,而非按比例分配整个空间。
3、 另外android:layout_weight会引起争议,是因为在设置该属性的同时,
设置android:layout_width为wrap_content和match_parent会造成两种截然相反的效果。
4、 如果想用layout_weight平均分配空间,正确方式是将layout_width(或layout_height)设置为0dp,
再通过layout_weight按比例分配空间
注:关键点在于搞清楚什么是剩余空闲空间

========================================================================
五、帧布局(FrameLayout)【就好象一张张卡片堆叠上去,后面会盖出前面的】
注:帧布局有点类似于awt的CardLayout都是把组件一个一个叠加到一起,
但CardLayout能将下面的组件移上来,但FrameLayout没有提供此功能

=======================================================================
六、相对布局:RelativeLayout(相对布局窗口内子组件的位置总是相对兄弟组件、父容器来决定的)
<1>注意:①注意XML中组件的顺序,不然会报错
②android新版本中组件的定义顺序没有关系
<2>RelativeLayout支持的二个xml属性:
①android:gravity :设置该布局容器内各子组件的对齐方式
②android:ignoreGravity:设置哪个组件不受gravity属性的影响
<3>控制子组件布局的内部类RalativeLayout.LayoutParams
①boolean (相对父元素【alignParent…】)
②id型( 相对于指定元素(根据ID指定))
a.@+id和@id的区别
b.@+id/x1(添加新ID)
c. @id/x1(引用此ID)
③靠拢动作(layout_toRightOf【向左靠拢】 layout_toLeftOf【向右靠拢】)

========================================================================

七、网格布局:GridLayout
①常用属性:
<1> GridLayout布局相关属性:rowCount(行)columnCount(列)
<2>GridLayout中子控件相关属性:
a.layout_gravity=“fill_horizontal”(水平填充)
b.layout_gravity=“fill_vertical”(垂直填充)
c.layout_rowSpan=“n” (占据n行)
d.layout_columnSpan=“n” (占据n列)
②Space标签的作用:挡住控件,让其不超出网格的范围

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,你可以在布局文件中添加两个 Button 控件,如下所示: ``` <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <EditText android:id="@+id/ipEditText" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入服务器IP地址" /> <EditText android:id="@+id/portEditText" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入服务器端口号" /> <Button android:id="@+id/connectButton" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="连接" /> <SeekBar android:id="@+id/seekBar_x" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="16dp" android:max="30" android:progress="0" /> <ScrollView android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"> <SeekBar android:id="@+id/seekBar_y" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="32dp" android:max="30" android:progress="0" /> </ScrollView> <Button android:id="@+id/sendMessageButton" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="发送消息" /> <Button android:id="@+id/cancelButton" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="取消" /> <Button android:id="@+id/confirmButton" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="确认" /> </LinearLayout> ``` 这样就在布局文件中添加了两个按钮:取消和确认。你可以根据需要修改按钮的文本和样式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值