Android布局学习——android:gravity和android:layout_gravity的区别

简介:

[Android布局学习系列]

  1.Android 布局学习之——Layout(布局)详解一

  2.Android 布局学习之——Layout(布局)详解二(常见布局和布局参数)

  3.Android 布局学习之——LinearLayout的layout_weight属性

  4.Android 布局学习之——LinearLayout属性baselineAligned的作用及baseline

 

1.分别是什么?

   android:gravity :

       定义了一个对象在X,Y坐标轴,在它自己的边界内,应该如何放置它的内容。是上(top)还是下(bottom),左(left)或是右(right)。

      

       比如一个TextView,设置它的android:gravity,对它的内容的位置有影响。

       

    

   android:layout_gravity :

      标准的gravity常量,是子组件提供给它的父组件的。定义了子View在封闭的布局(layout)中在X,Y方向上应该如何被放置。

     

     如一个方向是垂直的LinerLayout,布局里的TextView的layout_gravity对它在布局中的位置有影响。

    

     如果需要设置多个gravity值,用"|"符号分隔。如

 

android:layout_gravity="right|bottom"

android:gravity="right|bottom"

   2.区别

     看名字就能看出一些区别:android:layout_gravity和layout有关。

     android:gravity  设置 View的内容的gravity。

    android:layout_gravity  设置View或Layout的在它父布局中的gravity。

    3.Demo

   

复制代码
 1 <?xml version="1.0" encoding="utf-8"?>
 2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:orientation="vertical"
 4     android:layout_width="match_parent"
 5     android:layout_height="match_parent">
 6 
 7     <LinearLayout
 8         android:id="@+id/linearLayout"
 9         android:layout_width="match_parent"
10         android:layout_height="150dp"
11         android:orientation="vertical">
12         <TextView
13             android:layout_width="match_parent"
14             android:layout_height="50dp"
15             android:text="android:gravity用于设置View中内容相对于View组件的对齐方式"/>
16         <TextView
17             android:layout_width="match_parent"
18             android:layout_height="50dp"
19             android:text="android:gravity=center"
20             android:background="#ff0000"
21             android:gravity="center"/>
22         <TextView
23             android:layout_width="match_parent"
24             android:layout_height="50dp"
25             android:text="android:gravity=right|bottom"
26             android:background="#00ff00"
27             android:gravity="right|bottom"
28             />
29         </LinearLayout>
30     <TextView
31         android:id="@+id/textView"
32         android:layout_width="match_parent"
33         android:layout_height="50dp"
34         android:layout_below="@id/linearLayout"
35         android:text="android:layout_gravity用于设置View组件相对于Container的对齐方式"/>
36     <LinearLayout
37         android:id="@+id/linearLayout1"
38         android:layout_width="match_parent"
39         android:layout_height="100dp"
40         android:layout_below="@id/textView"
41         android:orientation="vertical">
42         <TextView
43             android:layout_width="wrap_content"
44             android:layout_height="wrap_content"
45             android:layout_gravity="left"
46             android:text="android:layout_gravity=left"
47             android:background="#ff0000"
48             />
49         <TextView
50             android:layout_width="wrap_content"
51             android:layout_height="wrap_content"
52             android:layout_gravity="right"
53             android:text="android:layout_gravity=right"
54             android:background="#00ff00"
55             />
56         </LinearLayout>
57     <LinearLayout
58         android:id="@+id/linearLayout2"
59         android:layout_width="match_parent"
60         android:layout_height="100dp"
61         android:layout_below="@id/linearLayout1"
62         android:orientation="horizontal">
63         <TextView
64             android:layout_width="wrap_content"
65             android:layout_height="wrap_content"
66             android:layout_gravity="top"
67             android:text="android:layout_gravity=top"
68             android:background="#ff0000"
69             />
70         <TextView
71             android:layout_width="wrap_content"
72             android:layout_height="wrap_content"
73             android:layout_gravity="bottom"
74             android:text="android:layout_gravity=bottom"
75             android:background="#00ff00"
76             />
77     </LinearLayout>
78 </RelativeLayout>
复制代码

  效果:

         

原文地址:http://www.cnblogs.com/JohnTsai/p/4231729.html


相关文章
|
3月前
|
ARouter Android开发
Android不同module布局文件重名被覆盖
Android不同module布局文件重名被覆盖
|
5月前
Android.mk(makefile)中几个符号的区别:=、 :=、 ?=、 +=
本文解释了在Android.mk文件中使用的几种赋值符号的区别,包括`=`(基本赋值)、`:=`(覆盖赋值)、`?=`(条件赋值,仅在变量未赋值时操作)、`+=`(追加赋值),并通过实验演示了这些符号的具体行为和效果。
300 1
|
4月前
|
Android开发 Kotlin
Android经典面试题之Kotlin的==和===有什么区别?
本文介绍了 Kotlin 中 `==` 和 `===` 操作符的区别:`==` 用于比较值是否相等,而 `===` 用于检查对象身份。对于基本类型,两者行为相似;对于对象引用,`==` 比较值相等性,`===` 检查引用是否指向同一实例。此外,还列举了其他常用比较操作符及其应用场景。
203 93
|
4月前
|
Java Maven 开发工具
第一个安卓项目 | 中国象棋demo学习
本文是作者关于其第一个安卓项目——中国象棋demo的学习记录,展示了demo的运行结果、爬坑记录以及参考资料,包括解决Android Studio和maven相关问题的方法。
第一个安卓项目 | 中国象棋demo学习
|
3月前
|
Web App开发 编解码 视频直播
视频直播技术干货(十二):从入门到放弃,快速学习Android端直播技术
本文详细介绍了Android端直播技术的全貌,涵盖了从实时音视频采集、编码、传输到解码与播放的各个环节。文章还探讨了直播中音视频同步、编解码器选择、传输协议以及直播延迟优化等关键问题。希望本文能为你提供有关Andriod端直播技术的深入理解和实践指导。
70 0
|
3月前
|
ARouter Android开发
Android不同module布局文件重名被覆盖
Android不同module布局文件重名被覆盖
212 0
|
4月前
|
Android开发
Android学习 —— 测试init.rc中的条件触发的处理顺序
Android学习 —— 测试init.rc中的条件触发的处理顺序
|
5月前
|
编解码 Android开发
【Android Studio】使用UI工具绘制,ConstraintLayout 限制性布局,快速上手
本文介绍了Android Studio中使用ConstraintLayout布局的方法,通过创建布局文件、设置控件约束等步骤,快速上手UI设计,并提供了一个TV Launcher界面布局的绘制示例。
86 1

热门文章

最新文章