zoukankan      html  css  js  c++  java
  • 安卓开发06:布局-线性布局 LinearLayout

    LinearLayout把视图组织成一行或一列。子视图能被安排成垂直的或水平的。线性布局是非常常用的一种布局方式。

    请看一个布局例子:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >
    
        <!-- 大的框架,横着布局 -->
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="horizontal" >
    
            <!-- 线性布局-竖着布局 -->
    
            <LinearLayout
                android:layout_width="100dp"
                android:layout_height="fill_parent"
                android:orientation="vertical" >
    
                <Button
                    android:id="@+id/button1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Button1" />
    
                <Button
                    android:id="@+id/button1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Button2" />
            </LinearLayout>
    
            <!-- 线性布局-横着着布局 -->
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal" >
    
                <Button
                    android:id="@+id/button1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Button3" />
    
                <Button
                    android:id="@+id/button1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Button4" />
            </LinearLayout>
        </LinearLayout>
    
    </LinearLayout>


    效果图:


    线性布局框架的一个属性表:

    属性 描述
    layout_width 指定View或ViewGroup的宽度
    layout_height 指定View或ViewGroup的高度
    layout_marginTop 指定View或ViewGroup上方的额外空间
    layout_marginBottom 指定View或ViewGroup下方的额外空间
    layout_marginLeft 指定View或ViewGroup左侧的额外空间
    layout_marginRight 指定View或ViewGroup右侧的额外空间
    layout_gravity 指定View或ViewGroup中的子视图的排列位置
    layout_weight 指定指派给View或ViewGroup的额外空间尺寸
    layout_x 指定View或ViewGroup的x坐标
    layout_y 指定View或ViewGroup的y坐标


    可以看到layout_width和layout_hight中经常有fill_parentwrap_contentmatch_parent来区分宽度和高度。这三者什么区别呢?

    fill_parent

    设置一个构件的布局为fill_parent将强制性地使构件扩展,以填充布局单元内尽可能多的空间。这跟Windows控件的dockstyle属性大体一致。设置一个顶部布局或控件为fill_parent将强制性让它布满整个屏幕。

    wrap_content

    设置一个视图的尺寸为wrap_content将强制性地使视图扩展以显示全部内容。以TextView和ImageView控件为例,设置为wrap_content将完整显示其内部的文本和图像。布局元素将根据内容更改大小。设置一个视图的尺寸为wrap_content大体等同于设置Windows控件的Autosize属性为True。

    match_parent

    Android2.2中match_parent和fill_parent是一个意思 .两个参数意思一样,match_parent更贴切,于是从2.2开始两个词都可以用。那么如果考虑低版本的使用情况你就需要用fill_parent了

  • 相关阅读:
    洛谷P4768 [NOI2018]归程(可持久化并查集,最短路)
    FFT/NTT总结+洛谷P3803 【模板】多项式乘法(FFT)(FFT/NTT)
    洛谷P2480 [SDOI2010]古代猪文(费马小定理,卢卡斯定理,中国剩余定理,线性筛)
    洛谷P4035 [JSOI2008]球形空间产生器(高斯消元)
    洛谷P2054 [AHOI2005]洗牌(扩展欧几里德)
    洛谷P3868 [TJOI2009]猜数字(中国剩余定理,扩展欧几里德)
    洛谷P1516 青蛙的约会(扩展欧几里德)
    Heaven of Imaginary(PKUSC2018)
    二进制高精度模板(高精度)
    洛谷UVA12995 Farey Sequence(欧拉函数,线性筛)
  • 原文地址:https://www.cnblogs.com/snake-hand/p/3153332.html
Copyright © 2011-2022 走看看