一、控件
1、match_parent:让控件大小和父布局的大小一样(官方推荐)
fill_parent:同上
wrap_parent:让当前控件的大小能够刚好包含住里面的内容
2、TextView中的文字默认左上角对齐
在<TextView>标签中
使用android:gravity来指定文字的对齐方式,可选值有top,bottom,left,right,center等,可以用 | 来同时指定多个值
使用android:textSize来指定文字大小,单位(sp)
使用android:textColor来指定文字颜色
3、Button
在<Button>标签中,系统会自动对Button中所有英文字母自动进行大小写转换,可以使用android:textAllcaps="false"来禁用
可以用匿名类和接口两种方法来为button注册监听器,匿名类方法比较简单
4、EditText
允许用户在控件里输入和编辑内容,并可以在程序中对这些内容进行处理
使用android:hint指定一段提示性文本
使用android:maxLines="2"指定EditText的最大行数为两行,当输入内容超过两行时,文本将会向上滚动,EditText不会继续拉伸
5、ImageView
用于在界面上展示图片
6、ProgressBar
用于在界面上显示一个进度条
通过style属性指定不同的样式
所有控件都有android:visibility属性,不指定默认为可见,visible表示可见,invisible表示不可见,gone不仅不可见而且不再占用屏幕任何空间
还可以通过代码来设置控件的可见性,用setVisibility()方法,可以传入view.VISIBLE,View.INVISIBLE和View.GONE三种值
控件用法总结:①给控件定义id②指定宽度高度③加入控件特有属性
二、布局
1、LinearLayout
线性布局,将其所包含的控件在线性方向上依次排列
通过android:orientation属性,vertical为垂直排列,horizontal为水平排列
使用horizontal时,内部的控件就不能把宽度设置为match_parent,这样的话单独一个控件就会将整个水平方向占满;使用vertical时则不能将高度设置为match_parent
android:layout_gravity属性可以指定控件在布局中的对齐方式
可用值有:top、center_vertical、bottom
当LinearLayout的方向是horizontal时,只有垂直方向上的对齐方式才会起作用;当值为vertical时,只有水平方向上的对齐方式才会起作用
2、RelativeLayout
相对布局,通过相对定位的方式让控件出现在布局的任何位置
相对于父布局
一目了然 效果
相对于控件
相对于Button3 效果3、FrameLayout
帧布局,没有方便的定位方式,所有的控件都会默认放在布局的左上角
类似LinearLayout,可以通过android:layout_gravity来指定控件在布局中的位置
指定layout_gravity的效果由于定位方式欠缺,所以帧布局应用较少,但在碎片中会用到。
4、百分比布局
由于LinearLayout本身已经支持按比例控制控件的大小了,因此百分比布局只为FrameLayout及RelativeLayout提供了功能扩展,提供了PercentFrameLayout和PercentRelativeLayout这两种全新布局。
在build.gradle中添加依赖,使所有的Android版本都能使用新布局。添加依赖时要对应你所使用的sdk版本。
使用app:layout_widthPercent和app:layout_heightPercent指定按钮的宽度和高度为布局的50%,这里之所以能使用app的前缀,是因为刚才定义了app的命名空间。
使用layout_gravity来指定按钮的位置
PercentFrameLayout效果图三、自定义布局
1、所有的控件都是直接或间接继承自View,所有的布局都是直接或间接继承自ViewGroup,而ViewGroup又是一种特殊的View,它可以包含很多子View和子ViewGroup,是一个用于放置控件和布局的容器
android:layout_margin来指定控件在上下左右方向上偏移的距离
标题栏布局完成后在activity_main.xml中通过include引入
代码
最后在MainActivity中将自带的标题栏隐藏掉 代码 引入标题栏布局的效果
网友评论