zoukankan      html  css  js  c++  java
  • android基础学习之布局

    我学习android第一步接触的就是布局的学习。布局是androidUI的基础,是重中之重。总的来说android有6种布局,分别是线性布局LinearLayout、相对布局RelativeLayout、帧布局FrameLayout、绝对布局AbsoluteLayaout、表格布局TableLayout、网格布局GridLayout。我觉得开发过程中最常用的就是前三种,下面就来总结一下前三种布局的属性。

    线性布局LinearLayout:

    android:orientation 设置线性布局的走向:水平(horizontal),垂直(vertical)
    垂直线性布局:每一行只能放一个控件,到底部放不下就会被挤出去,
    水平线性布局:每一列只能放一个控件,到右边放不下就会被挤出去。
    如果不设置该属性 默认为水平。

    控件的宽高:
    属性:match_parent/fill_parent 填充父窗体(fill_parent 已弃用)
    wrap_content 包裹内容
    绝对数字 例如150dp


    background:设置背景颜色:

    出现的位数: 3/4 6/8 ARGB (alpha(透明度) red green blue)

    #00ffffff 完全透明
    #ffffffff 完全不透明
    #88ffffff 半透明

    #fff 白色 ffffff
    #000 黑色
    #f00 红色
    #0f0 绿色
    #00f 蓝色
    #ccc 灰色 333 666 999

    属性:
    android:layout_gravity(内对外的请求) 用于控件相对于外层容器的对齐方式
    可选值:top, bottom, left(start),right(end),center_vertical垂直居中,center_horizontal水平居中,center水平垂直都居中。

    注意:在垂直线性布局里面:top, bottom,center_vertical 无效center 在垂直方向无效。

    水平线性布局里面: left(start),right(end),center_horizontal 无效,center在水平方向无效。

    android:gravity(外对内的要求)控制视图容器内容物的位置 和本身的水平垂直属性不冲突

    可选值:top, bottom, left(start),right(end),center_vertical垂直居中,center_horizontal水平居中,center水平垂直都居中。


    layout_gravity:是定义控件位置。
    gravity:是定义控件里面的内容的位置。如果定义在布局中,则整体控件按照其定义的位置放置。


    权重:android:layout_weight 他是用于分配剩余空间的属性,
    注意:
    在水平方向设置权重:要把宽度设置为0dp ,
    在垂直方向设置权重的时候要把 高度设置为0dp
    如果设置wrap_content 会对权重有干扰

    相对布局RelativeLayout:

    属性主要分为四大类

    1、相对于父元素:七个属性:
    是否让控件相对于父元素顶部对齐:android:layout_alignParentTop
    是否让控件相对于父元素底部对齐:android:layout_alignParentBottom
    是否让控件相对于父元素左边对齐:android:layout_alignParentLeft
    是否让控件相对于父元素右边对齐:android:layout_alignParentRight
    全居中 :centerInParent
    水平居中:layout_centerHorizontal
    垂直居中:layout_centerVertical

    2、相对于兄弟元素  4个
    layout_above; 指定在那个控件的上侧
    layout_below 指定在那个控件的下侧
    android:layout_toLeftOf layout_toStartOf 指定在那个控件的左侧,api版本17推荐使用

    android:layout_toRightOf layout_toEndOf 指定在那个控件的右侧,api版本17推荐使用


    3、相对于兄弟元素的对齐方式
    layout_alignLeft 该控件的左边与指定控件的左边对齐
    layout_alignRight 该控件的右边与指定控件的右边对齐
    layout_alignTop 该控件的上边沿与指定控件的上边沿对齐
    layout_alignBottom 该控件的下边沿与指定控件的下边沿对齐

    4、间隔
    paddingXXX 内边距 (不指定方向,四周都有)
    layout_marginXXX 外边距 (不指定方向,四周都有)

    帧布局FrameLayout:

    帧布局主要用于碎片fragment的主布局。

    以上就是布局的学习内容,我认为难点在于线性布局中的layout_gravity和gravity

  • 相关阅读:
    关于在windows10中的vmware9.0里面安装的ubuntukylin15.04和windows共享目录的一些反思
    关于最近工程的一些心得
    关于springMVC中component-scan的问题以及springmvc.xml整理
    初学node.js有感三
    初学node.js有感二
    初学node.js有感一
    编译原理——算符优先分析文法(附源代码)
    数据结构与算法系列研究九——排序算法的一些探讨
    LeetCode: Same Tree
    LeetCode: Symmetric Tree
  • 原文地址:https://www.cnblogs.com/cbx17v/p/5893176.html
Copyright © 2011-2022 走看看