match_parent:由父布局来决定当前控件的大小(同fill_parent)
wrap_parent:由控件内容来决定当前控件的大小
android:gravity属性:用来指定文字在控件的对齐方式。可选值有top、bottom、left、right、center(center_horizontal和center_vertical)
android:layout_gravity属性:用来指定控件在布局中的对齐方式。可选值有top、bottom、left、right、center(center_horizontal和center_vertical)
字体大小用sp作为单位。
控件大小、间距用dp作为单位。
系统会对Button中所有的英文字母自动转成大写。可使用android:textALLcaps=”false”属性来禁用这一功能。
android:hint属性:用来给EditText指定一段提示性的文本。
android:maxLines属性:用于给EditText指定最大的行数
所有的Android控制都具有可见属性。通过android:visibility属性来指定,可选值有visible、invisible、gone。
visible:默认值,可见性
invisible:指定为不可见,但仍然占用原来位置的大小空间,这种方式可以理解为控件处于透明状态
gone:指定为不可见,且不占用空间。
在代码中,通过setVisibility(),传入View.VISIBLE、View.INVISIBLE和View.GONE来控制;通过getVisibility()来判断控件是否可见。
这样就能够控制控件的显示与隐藏了。
setCancelable(),传入false,表示控件不能通过back键取消掉;传入true,表示控件可以通过back键取消。
LinearLayout的属性:
android:orientation属性:可选值为vertical(垂直方向)和horizontal(水平方式)
android:layout_weight属性:允许通过比例的方式来指定控件的大小。此方式会将父布局中所有控件指定的layout_weight值相加,得到总值。
然后每个控件所占大小的比例就是该控件的layout_weight值除以总值。如果父布局当中存在没有指定layout_weight属性的控件,则该控件按原有控件的大小显示,然后在剩余的空间中按比例分配。
RelativeLayout的属性:
相对于父布局进行定位:
android:layout_alignParentTop=”true”
android:layout_alignParentBottom=”true”
android:layout_alignParentLeft=”true”
android:layout_alignParentRight=”true”
android:layout_centerInParent=”true”
相对于控件进行定位:
android:layout_above=”@id/”
android:layout_below=”@id/”
android:toLeftOf=”@id/”
android:toRightOf=”@id/”
当一个控件去引用另一个控件的id时,该控件一定要定义在引用控件的后面(即引用前,先定义)。
相对于控件的边缘对齐进行定位:
android:alignLeft=”@id/”
android:alignRight=”@id/”
android:alignTop=”@id/”
android:alignBottom=”@id/”
FrameLayout(帧布局)、TableLayout(表格布局)、AbsoluteLayout(绝对布局),用的少。
新增百分比布局,此方式需要在buil.gradle中添加库依赖
compile ‘com.android.support:percent:24.2.1’
百分比布局只是为FrameLayout和RelativeLayout进行功能扩展,提供了PercentFrameLayout和PercentRelativeLayout,它们还是会继承FrameLayout和Relativelayout的特性。它们的控件在布局中所占用控件直接使用百分比来控制。
由于百分比布局不是系统内置的,所以需要把完整的包路径写出来,同时还必须定义一个app的命名空间。
buil.gradle文件
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:25.0.1'
compile 'com.android.support:percent:25.0.1'
}
xml布局文件:
<?xml version="1.0" encoding="utf-8"?>
<android.support.percent.PercentFrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!--
命名空间的写法:
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
-->
<Button
android:id="@+id/btn1"
android:text="btn1"
android:layout_gravity="left|top"
app:layout_widthPercent="50%"
app:layout_heightPercent="50%" />
<Button
android:id="@+id/btn2"
android:text="btn2"
android:layout_gravity="right|top"
app:layout_widthPercent="50%"
app:layout_heightPercent="50%" />
<Button
android:id="@+id/btn3"
android:text="btn3"
android:layout_gravity="left|bottom"
app:layout_widthPercent="50%"
app:layout_heightPercent="50%" />
<Button
android:id="@+id/btn4"
android:text="btn4"
android:layout_gravity="right|bottom"
app:layout_widthPercent="50%"
app:layout_heightPercent="50%" />
</android.support.percent.PercentFrameLayout>