[第一行代码(第三版)]第四章总结
1. 常用控件
1.1 TextView
1.1.1 概念
TextView主要用来显示一段文本信息。
1.1.2 常用属性
layout_weight,leyout_height
:指定控件的宽度和高度,可选值:match_parent
,wrap_content
和固定值。第一种是匹配父类容器的大小,第二种是根据内容自适应大小。单位一般用dp
,这是一种与屏幕密度无关的尺寸单位,可以保证在不同手机上显示效果尽可能一致。
dp
:是一种密度无关像素,对应于160dpi下像素的物理尺寸;
sp
:是相同的基本单位,但它会按用户首选的文本尺寸进行缩放(属于缩放无关像素),因此在定义文本尺寸时应使用此计量单位(但切勿为布局尺寸使用此单位)。
(关于各种尺寸单位的区别,参考博客1)
gravity
:用于指定文字的对齐方式,可选值:top
,buttom
,start
,end
,center
等,并且可以使用|
同时指定多个值。
1.2 Button
1.2.1 概念
Button为按钮控件,用于用户点击。
1.2.2 常用属性
textAllCaps
:Button按钮中的文字都是默认全大写,如果需要保留原本的大小写格式,需要修改本属性为false。setOnClickListener()
:设置按钮的点击事件。
Button btn=findViewById(R.layout.activity_main.click_btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//do sth
}
});
1.3 EditText
1.3.1 概念
EditText用于用户输入文字信息,例如聊天软件中的发送消息功能。
1.3.2 常用属性
hint
:当用户未输入时,文本框内显示提示信息。maxLines
:如果输入多行,则会显示很多行内容,显得比较丑,可以设置最大行数。
关于更多控件书中只是简单介绍使用,可以参考博客2。
2. 布局
2.1 LinearLayout线性布局
2.1.1 概念
线性布局如名,控件按顺序排列。
2.1.2 重要属性
orientation
:控件顺序从左往右或者从上往下,根据该属性设置。layout_gravity
:控件在布局中的对齐方式。layout_weight
:多个控件所占大小可以根据该值进行设置,结果根据比例进行分配。例如控件A该值为1,控件2该值为1,则两个控件平分大小,如果控件A设置了该值,另一个控件B未设置该值,而是使用了wrap_content
,match_content
或固定值,则首先计算控件B需要的大小,剩余的大小分配给A。(注意,如果控件B设置了match_content
并且占据了整个屏幕,则A就不可见了)
2.2 RelativeLayout相对布局
2.2.1 概念
相对布局中,各个控件的位置可以设置相对父类容器的位置,也可以设置相对其他控件的位置。
2.2.2 常用属性
android:layout_above
:让一个控件位于一个控件的上方。android:layout_below
:让一个控件位于一个控件的下方。ndroid:layout_toLeftOf
:让一个控件位于一个控件的左侧。android:layout_toRightOf
:让一个控件位于一个控件的右侧。android:layout_alignParentLeft
:和父布局的左对齐。android:layout_alignParentTop
:和父布局的上对齐。android:layout_alignParentRight
:和父布局的右对齐。android:layout_alignParentBottom
:和父布局的下对齐。android:layout_centerInParent
:和父布局的居中显示。
2.3 FrameLayout帧布局
2.3.1 概念
帧布局中,各个控件默认在左上角,后添加的控件会覆盖先添加的控件,并且通过layout_gravity
属性来设置位置,由于使用场景较少并且十分简单,这里不过多介绍。
Tip1:多个布局文件可以嵌套,例如可以把页面分为标题栏,内容,菜单栏三个布局文件,然后在主文件中使用
<include layout="@layout/XXX">
来使用
Tip2:书中只介绍了上面3种布局,更多Android 4.0新加的布局,表格布局,网格布局可以参考博客3,以及最新的ConstraintLayout布局-约束布局,可以看本书作者的参考博客4。