• android布局理解


    1 线性布局LinearLayout 

       所有在其中的任意元素都会排成一条线  水平线或者垂直线

    android:orientation="vertical|horizontal" 设置水平或者垂直布局

    android:gravity表示对齐的方式  居中|左边|上面

    android:background 设置的背景色

    android:layout_width 表示宽度 除了设置数字的确定长度外 也可以相对父容器或者子容器的内容自动变化大小

            wrap_content 表示随着子内容的大小决定大小

           match_parent|fill_parent 表示填满父容器 

    android:layout_height 高度和宽度设置类似

        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/LinearLayout1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#567555"
        android:gravity="top"                               
        android:orientation="vertical" >

    <LinearLayout> 

    2 表格布局TableLayout 

     以行和列的方式来进行布局  继承LinearLayout  拥有线性布局的所有属性

    在布局中每个<TableRow>表示一行  其中每一个View控件表示一列  列的宽度由每一行中当前列最宽的那列宽度决定当前列的宽度

    android:stretchColumns 表示自动拉伸的列编号 如果设置了  当前行没有完全填满时 设置的列自动拉伸填满表格行  可以指定 多个列用逗号隔开 或者 *所有列   

     android:collapseColumns 表示隐藏的列编号 设置了 该列不会显示  

    android:shrinkColumns 表示自动收缩的列的编号 当行中某个列的长度超过了当前行的宽度 自动缩小到填充表格行  可以指定 多个列用逗号隔开 或者 *所有列   

    举例:

    <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#567555"
        android:gravity="center_vertical"
        android:stretchColumns="1"
        android:collapseColumns="0"
        
         >
        <TableRow android:id="@+id/tb1" android:layout_width="wrap_content" android:layout_height="wrap_content"> 
            <TextView android:text="qq号码"/>
            <EditText android:id="@+id/et1" android:layout_width="200dp" android:layout_height="wrap_content" android:inputType="text"/>
        </TableRow>
        <TableRow android:id="@+id/tb2"  android:layout_width="wrap_content" android:layout_height="wrap_content" >
            <TextView android:text="qq密码"/>
            <EditText android:id="@+id/et2" android:layout_width="200dp" android:layout_height="wrap_content"  android:inputType="text"/>
        </TableRow>

       <!--一条线-->
        <View android:layout_height="2dp" android:background="#867555"/>
    </TableLayout>

    3 相对布局 

    就是将当前元素 置于指定元素的上下左右位置  常用的属性可以参考RelativeLayout类中的属性名称

    toRightOf 当前元素的左边框 和另外一个元素的右边框 对齐 也就是放在指定元素的右边


    可以在b的控件上指定    toRightOf="@id/a"

    toLeftOf  将元素放在指定元素的左边

    below 将元素放在指定元素的下边

    above 将元素放在指定元素的上面

    其他元素可以查看RelativeLayout属性

    表示b元素的右边缘和a元素的左边缘对其  也就是放在a的右边


    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/RelativeLayout1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#ffffff" >


        <ImageView
            android:id="@+id/iv"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:src="@drawable/ic_launcher" />


        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="50dp"
            android:layout_marginLeft="10dp"
            android:layout_toRightOf="@id/iv"
            android:gravity="center_vertical"
            android:orientation="vertical" >


            <TextView
                android:id="@+id/text"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_toRightOf="@id/iv"
                android:text="189 9311 6326" >
            </TextView>


            <TextView
                android:id="@+id/view1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@id/text"
                android:layout_toRightOf="@id/iv"
                android:text="甘肃兰州" />
        </LinearLayout>


        <View
            android:layout_width="fill_parent"
            android:layout_height="2dp"
            android:background="#867555" 
            android:layout_below="@id/iv"
            />


    </RelativeLayout>


    效果如下:


    4 FrameLayout

    FrameLayout是五大布局中最简单的一个布局,在这个布局中,整个界面被当成一块空白备用区域,所有的子元素都不能被指定放置的位置,它们统统放于这块区域的左上角,并且后面的子元素直接覆盖在前面的子元素之上,将前面的子元素部分和全部遮挡。显示效果如下,第一个TextView被第二个TextView完全遮挡,第三个TextView遮挡了第二个TextView的部分位置。

    5 绝对布局

    AbsoluteLayout是绝对位置布局。在此布局中的子元素的android:layout_x和android:layout_y属性将生效,用于描述该子元素的坐标位置。屏幕左上角为坐标原点(0,0),第一个0代表横坐标,向右移动此值增大,第二个0代表纵坐标,向下移动,此值增大。在此布局中的子元素可以相互重叠。在实际开发中,通常不采用此布局格式,因为它的界面代码过于刚性,以至于有可能不能很好的适配各种终端。



  • 相关阅读:
    B.Icebound and Sequence
    Educational Codeforces Round 65 (Rated for Div. 2) D. Bicolored RBS
    Educational Codeforces Round 65 (Rated for Div. 2) C. News Distribution
    Educational Codeforces Round 65 (Rated for Div. 2) B. Lost Numbers
    Educational Codeforces Round 65 (Rated for Div. 2) A. Telephone Number
    Codeforces Round #561 (Div. 2) C. A Tale of Two Lands
    Codeforces Round #561 (Div. 2) B. All the Vowels Please
    Codeforces Round #561 (Div. 2) A. Silent Classroom
    HDU-2119-Matrix(最大匹配)
    读书的感想!
  • 原文地址:https://www.cnblogs.com/liaomin416100569/p/9331236.html
Copyright © 2020-2023  润新知