写在前面
如果你是新手,我建议你坚持看下去,因为你肯定不了解权重,而权重并没有那么简单。希望看完后对你有一定的帮助。
关于说什么专业不专业,或者app流畅,其实不存在这回事情。设置成0dp,wrap-content,以及match-parent是有很多道理可循的。
关于布局
上节中我们讲了一些TextView的基本用法,那么这节我们就来讲一些Android中的常见布局。
Android早期主要有六大布局:分别是线性布局(LinearLayout),相对布局(RelativeLayout),帧布局(FrameLayout),绝对布局(AbsoluteLayout),表格布局(TableLayout)以及网格布局(GridLayout),随着Android的逐步发展,Android的布局也在随之增多,例如百分比布局(PercentLayout)以及约束布局(ConstraintLayout)等等。
今天我们主要讲解LinearLayout的常见用法,先来一张超大的思维导图。
根据上面的思维导图来看,上面的部分属性我们在之前的TextView中已经讲过了,所以在本节中我们主要讲一些LinearLayout的特有属性。
LinearLayout篇
常见属性讲解
- layout-width: 不过多说了,控件宽度,必要属性。
- layout-height: 同上,控件高度,必要属性。
- id: 定义资源id,以方便在Java源文件中通过findViewById(R.id.xx)生成该控件的实例。
- orientation: LinearLayout中的控件排列方向。两种选择,垂直(vertical)或者水平(horizontal), 反正劳资想怎么摆就怎么摆。
比如你可以这样摆:(水平方向)
你可以这样摆:(竖直方向)
“咦, 我的第二个TextView呢?怎么不见了?“
仔细看一下,TextView001的宽度填充了屏幕的宽高,你肯定是把TextView001的height属性设置成了match-parent(fill-parent)。劳资打破你的钛合金头,上节课不是跟你讲了吗?再检查看看。
”哎哟,果然是这样,赶紧换成wrap-content或者自定义标签,比如200dp。啊哈,好了。“
- background: 给控件设置背景颜色,这个我们上节已经讲过。
剩下还有两个属性:layout-gravity以及gravity,这个我们暂时不讲,留到后面再讲。
权重讲解
1.关于权重最基本的用法
我们首先还是先来看一下实现的效果
实现代码:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.selfassu.layoutdemo.MainActivity">
<TextView
android:layout_weight="1"
android:layout_width="0dp"
android:background="#f00"
android:layout_height="match_parent"
android:text="LinearLayout爸爸,把你的位置分给我一半"/>
<TextView
android:background="#0f0"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:text="我也要,我也要"/>
&l