zoukankan      html  css  js  c++  java
  • 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代表纵坐标,向下移动,此值增大。在此布局中的子元素可以相互重叠。在实际开发中,通常不采用此布局格式,因为它的界面代码过于刚性,以至于有可能不能很好的适配各种终端。



  • 相关阅读:
    GAN生成对抗网络-DCGAN原理与基本实现-深度卷积生成对抗网络03
    【我的遇见】
    【笔记汇总贴】
    vtr搭建并使用ipv6免流上校园网教程(CentOs8避坑指南)
    国科大抢课避坑+选课指南+教务系统操作
    论文:Bottom-Up and Top-Down Attention for Image Captioning and Visual Question Answering-阅读总结
    bernoulli, multinoulli distributions 讲解
    论文:Show, Attend and Tell: Neural Image Caption Generation with Visual Attention-阅读总结
    论文:Show and Tell: A Neural Image Caption Generator-阅读总结
    【吴恩达课程使用】pip安装pandas失败-anaconda各种玄学T-T-从新开始搭建环境
  • 原文地址:https://www.cnblogs.com/liaomin416100569/p/9331236.html
Copyright © 2011-2022 走看看