为了账号安全,请及时绑定邮箱和手机立即绑定

线性布局之LinearLayout入门

标签:
Android

线性布局之LinearLayout入门

  1. 前言

  2. 常用属性

  3. 举例子

  4. 注意点

一、前言

Android的界面组件比较多,为了更好地管理Android应用的用户界面里的各组件,Android提供了布局管理器。通过使用布局管理器,Android应用的图形用户界面具有良好的平台无关性。在这里简单介绍一下线性布局。
   线性布局由LinearLayout类来代表,它会将容器里的元素(可以是控件或布局)一个挨着一个地排列起来。LinearLayout可以控制各元素横与纵向排列。当一个个元素排列到头后,剩下的元素将不会被显示出来。

二、LinearLayout常用属性介绍

  • Layout公共属性介绍:

  • layout_centerHorizontal  水平居中  
    layout_centerVertical   垂直居中  
    layout_centerInparent    相对于父元素完全居中  
    layout_alignParentBottom 贴紧父元素的下边缘  
    layout_alignParentLeft   贴紧父元素的左边缘  
    layout_alignParentRight  贴紧父元素的右边缘  
    layout_alignParentTop    贴紧父元素的上边缘  
    layout_alignWithParentIfMissing  如果对应的兄弟元素找不到的话就以父元素做参照物  
    layout_below      在某元素的下方  
    layout_above      在某元素的的上方  
    layout_toLeftOf   在某元素的左边  
    layout_toRightOf  在某元素的右边  
    layout_alignTop   本元素的上边缘和某元素的的上边缘对齐  
    layout_alignLeft  本元素的左边缘和某元素的的左边缘对齐  
    layout_alignBottom 本元素的下边缘和某元素的的下边缘对齐  
    layout_alignRight  本元素的右边缘和某元素的的右边缘对齐  
    layout_marginBottom   离某元素底边缘的距离  
    layout_marginLeft      离某元素左边缘的距离  
    layout_marginRight    离某元素右边缘的距离  
    layout_marginTop       离某元素上边缘的距离  
    orientation 线性布局以列或行来显示内部子元素
    layout_weight 子元素对未占用空间水平或垂直分配权重值

LinearLayout重要的属性

android:layout_gravity 本元素相对于父元素的重力方向

属性介绍
top将对象放在其容器的顶部,不改变其大小
bottom将对象放在其容器的底部,不改变其大小
left将对象放在其容器的左侧,不改变其大小
right将对象放在其容器的右侧,不改变其大小.
start是为了兼容从左到右和从右到左的不同书写顺序的
end是为了兼容从左到右和从右到左的不同书写顺序的
center_vertical 将对象纵向居中,不改变其大小。
fill_vertical如果需要时,将对象纵向填充
center_horizontal将对象横向居中,不改变其大小
fill_horizontal如果需要时,将对象横向填充
center将对象居中,不改变其大小
fill将对象横向和纵向填充

android:gravity 本元素所有子元素的重力方向

属性介绍
top将对象放在其容器的顶部,不改变其大小
bottom将对象放在其容器的底部,不改变其大小
left将对象放在其容器的左侧,不改变其大小
right将对象放在其容器的右侧,不改变其大小.
start是为了兼容从左到右和从右到左的不同书写顺序的
end是为了兼容从左到右和从右到左的不同书写顺序的
center_vertical 将对象纵向居中,不改变其大小。
fill_vertical如果需要时,将对象纵向填充
center_horizontal将对象横向居中,不改变其大小
fill_horizontal如果需要时,将对象横向填充
center将对象居中,不改变其大小
fill将对象横向和纵向填充

* 注 :可同时指定多种对其方式的组合,中间用“|”连接,如设置对齐方式为 left|center_vertical 表示出现在屏幕左边且垂直居中

  • android:orientation 线性布局以列或行来显示内部子元素

  • android:orientation=”horizontal”  元素水平摆放
    horizontal

  • android:orientation=”vertical”   元素垂直摆放
    vertical

  • android:layout_weight 子元素对未占用空间水平或垂直分配权重值

  • weight
    *  注:这里使用垂直摆放下的1:1权重

  • 三、举个例子

  • 先上图:
    example

<!--
      第一线性布局
      这里面xmlns:android和xmlns:tools指定的是xml文件的命名空间,不是对布局的主要设置
      android:orientation="vertical"  指的是当前控件为垂直摆放
      android:layout_width="match_parent"指的是当前的线性布局宽度占整个父元素,这里相对于
      当前的线性布局父元素为当前的窗体,所以宽度占满窗体
      android:layout_height="match_parent"指的是当前的线性布局高度占整个父元素,这里相对于
      当前的线性布局父元素为当前的窗体,所以高度占满窗体
      android:gravity="center_horizontal"  让子控件都居中布局
-->
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center_horizontal"
    tools:context="com.example.admin.blog_linearlayout.MainActivity">

    <!--
        第二个线性布局
        android:orientation="horizontal"  指的是当前控件为水平摆放
        android:layout_gravity="left"   指的是将当前控件的子控件向左方向摆放
    -->

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_gravity="left">
        <Button
            android:layout_width="100dp"
            android:layout_height="wrap_content"
            android:text="one,one"/>

        <Button
            android:layout_width="100dp"
            android:layout_height="wrap_content"
            android:text="one,two" />
    </LinearLayout>

    <!--
        第三个线性布局
        两个子控件都设置android:layout_weight="1",表示它们的权重之比为1:1 
    -->

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_margin="10dp">
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="two,one" />
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="2"
            android:text="two,two" />
    </LinearLayout>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="three,one" />


</LinearLayout>

四、几个重要的注意点:

  • orientation的默认值为horizontal,即从左向右排列。由于一般从上向下排列,所以必须指定orientation属性。

  • layout_gravity与gravity的区别:
    (1)gravity指定自身所包含的子元素的对齐方式
    (2)layout_gravity用于指定自身在父元素中的对齐方式,并可覆盖其父元素的gravity属性。

  • 为了方便管理,有时可将部分样式的参数定义在values文件夹里的.xml文件中,如
    (1)需要用到的字符串资源定义到string.xml文件中
    (2)需要用自定义颜色:在color.xml文件中可以自定义我们需要的颜色

作者 :   陈前昕
原文链接:点击这里


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消