第一行代码 第三章

来源:互联网 发布:csol怒海狂鲨数据 编辑:程序博客网 时间:2024/05/06 06:31

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>
原创粉丝点击