文档章节

Android 布局详解 -二相对布局(Relative Layout)以及重要属性

-天蓬元帅-
 -天蓬元帅-
发布于 2013/12/15 15:34
字数 840
阅读 638
收藏 4

二Relative Layout

Relative Layout布局:相对位置布局,的几个重要属性

  第一类 : 属性值为 true 或 false

  •   android:layout_centerHrizontal           水平居中
  •   android:layout_centerVertical             垂直居中
  •   android:layout_centerInparent            相对于父元素完全居中
  •   android:layout_alignParentBottom       贴紧父元素的下边缘
  •   android:layout_alignParentLeft            贴紧父元素的左边缘
  •   android:layout_alignParentRight          贴紧父元素的右边缘
  •   android:layout_alignParentTop            贴紧父元素的上边缘
  •   android:layout_alignWithParentIfMissing  若找不到兄弟元素以父元素做参照物

 

第二类:属性值必须为 id 的引用名“ @id/id-name ”

 

  •   android:layout_below           在某元素的下方
  •   android:layout_above           在某元素的上方
  •   android:layout_toLeftOf       在某元素的左边
  •   android:layout_toRightOf     在某元素的右边
  •   android:layout_alignTop       本元素的上边缘和某元素的的上边缘对齐
  •   android:layout_alignLeft      本元素的左边缘和某元素的的左边缘对齐
  •   android:layout_alignBottom 本元素的下边缘和某元素的的下边缘对齐
  •   android:layout_alignRight    本元素的右边缘和某元素的的右边缘对齐

 

  第三类:属性值为具体的像素值,如 30dip , 40px

 

  •   android:layout_marginBottom  离某元素底边缘的距离
  •   android:layout_marginLeft       离某元素左边缘的距离
  •   android:layout_marginRight     离某元素右边缘的距离
  •   android:layout_marginTop       离某元素上边缘的距离

Relative Layout布局:相对位置布局,类似于Word中的位置对齐,总共有九个方位,如下图所示

可以分别对应Word中的九个方位,以及还可以设置类似CSS中的组件与组件之间的外边距,如margin即是设置这一项,注意layout_margin这一项设置像素以后,则是设置的上下左右四个方位的值,如果只想设置某一边的话,则使用下面的marginLeft……之一, 
设置组件内文字与组件边距可用属性padding,如下图:

下面,我们来看看布局文件的代码与详解

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:id="@+id/label"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Type here:" />

    <EditText
        android:id="@+id/entry"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/label"
        android:background="@android:drawable/editbox_background" />

    <Button
        android:id="@+id/ok"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_below="@id/entry"
        android:layout_marginLeft="10dip"
        android:text="OK" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@id/ok"
        android:layout_toLeftOf="@id/ok"
        android:text="Cancel" />

</RelativeLayout>

最后的效果图为:

还需知道:

1.android:paddingLeft与android:layout_marginLeft的区别:

      padding margin都是边距的含义,关键问题得明白是什么相对什么的边距.
      padding是控件的内容相对控件的边缘的边距.
      layout_margin是控件边缘相对父空间的边距.

2.android: gravityandroid:layout_gravity区别

  android:gravity 属性是对该view 内容的限定.比如一个button 上面的text.  你可以设置该text 在view的靠左,靠右等位置.该属性就干了这个.
      android:layout_gravity是用来设置该view相对与起父view 的位置.比如一个button 在linearlayout里,你想把该button放在靠左靠右等位置就可以通过该属性设置.

这样就解释了,有什么我们弄个最外布局,然后里面包了几个布局,如果要使这几个布局都靠底,就可以在最外布局的属性里设置androi:gravity="botton"  因为gravity是对里面的内容起作用.


© 著作权归作者所有

共有 人打赏支持
-天蓬元帅-
粉丝 2
博文 10
码字总数 10576
作品 0
嘉定
私信 提问
Android 布局详解 -一线性布局以及重要属性

Android 布局详解 Android 布局是开发中非常重要的一个知识部分,它的布局分为以下几种: Linear Layout:线性布局 Relative Layout:相对布局 Table Layout:表格布局 Grid View:网格布局 ...

-天蓬元帅-
2013/12/15
0
0
Android学习笔记(二) 布局方式的介绍

Android应用的开发的一项内容就是用户界面开发了。Android提供了大量功能丰富的UI组件。Android的界面是由布局和组件协同完成的。 Android所有UI组件都继承了View类,View类有一个重要的子类...

半夏alvin
2014/03/05
0
0
Android 的几种布局方式及实践

我们对Android应用程序运行原理及布局文件可谓有了比较深刻的认识和理解,并且用“Hello World!”程序来实践证明了。在继续深入Android开发之旅之前,有必要解决前两篇中没有介绍的遗留问题...

sumpower
2014/02/25
0
0
Android布局

View的布局显示方式有下面几种:线性布局(Linear Layout)、相对布局(Relative Layout)、表格布局(Table Layout)、网格视图(Grid View)、标签布局(Tab Layout)、列表视图(List Vi...

JavaGG
2011/06/29
16.7K
17
android LinearLayout

LinearLayout是线性布局控件,它包含的子控件将以横向或竖向的方式排列,按照相对位置来排列所有的widgets或者其他的containers,超过边界时,某些控件将缺失或消失。因此一个垂直列表的每一行...

amigos_wu
2012/06/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

如何开发一款以太坊(安卓)钱包系列2 - 导入账号及账号管理

这是如何开发一款以太坊(安卓)钱包系列第2篇,如何导入账号。有时用户可能已经有一个账号,这篇文章接来介绍下,如何实现导入用户已经存在的账号。 导入账号预备知识 从用户需求上来讲,导...

Tiny熊
今天
2
0
intellJ IDEA搭建java+selenium自动化环境(maven,selenium,testng)

1.安装jdk1.8; 2.安装intellJ; 3.安装maven; 3.1 如果是单前用户,配置用户环境变量即可,如果是多用户,则需配置系统环境变量,变量名为MAVEN_HOME,赋值D:\Application\maven,往path中...

不最醉不龟归
今天
3
0
聊聊ShenandoahGC的Brooks Pointers

序 本文主要研究一下ShenandoahGC的Brooks Pointers Shenandoah Shenandoah面向low-pause-time的垃圾收集器,它的GC cycle主要有 Snapshot-at-the-beginning concurrent mark包括Init Mark(P......

go4it
昨天
2
0
Makefile通用编写规则

#简单实用的Makefile模板: objs := a.o b.o test:$(objs) gcc -o test $^ # .a.o.d .b.o.d dep_files := $(foreach f,$(objs),.$(f).d) dep_files := $(wildcard $(dep_files)) ifneq ($(d......

shzwork
昨天
2
0
《万历十五年》的读后感作文4000字

《万历十五年》的读后感作文4000字: 万历十五年,即1587年,距今已过去432年。在明朝276的历史中,这一年很平淡,并没有什么特别之处。黄仁宇的《万历十五年》一书,有别于其他的历史叙述方...

原创小博客
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部