Android五种基本布局

news/2024/7/8 15:55:04

1.LinearLayout

  线性布局,是一种常用的布局,所包含的控件在线性方向上排列,包括水平和竖直两个方向。通过android:orientation属性来指定排列方向是竖直vertical或者水平horizontal。如果LinerLayout的排列方向是horizontal,内部的控件就不能将宽度指定为match_parent,如果这样的话一个控件就单独把整个水平方向占满,其他控件就没有可放置的位置了。同样的道理,如果LinerLayout的排列方向是vertical,内部控件就不能把高度指定为match_parent。

  下面来学习几个关键属性的用法。

  android:gravity是用来指定文字在控件中的对齐方式。

  android:layout_gravity是用于指定控件在布局中的对齐方式。当LinerLayout的排列方向为horizontal时,只有垂直方向上的对齐方式才会生效,因为此时水平方向上的长度是不固定的,每添加一个控件,水平方向的长度就会改变,因此无法指定该方向上的对齐方式。同理,当LinerLayout的排列方向是vertical时,只有水平方向上的对齐方式才会生效。

  android:layout_weight这个属性允许我们使用比例的方式来指定控件的大小。系统会把LinerLayout下所有控件的layout_weight值相加,得到一个总值,然后每个控件所占大小的比例就是用该控件的layout_weight值除以刚才算出的总值。

 

2.RelativeLayout

  相对布局,也是常用布局。它通过相对定位的方式让控件出现在布局的任何位置,比较灵活,适合复杂界面,位置属性比较多,可以根据其字面含义推断。可以指定控件相对控件的位置,也可指定控件相对布局的位置。在指定相对位置时,引用相对控件的ID必须在引用前定义,否则抛出异常。

  下面来学习几个关键属性的用法。

  android:layout_toLeftOf:该组件位于引用组件的左方。

  android:layout_toRightOf:该组件位于引用组件的右方。

  android:layout_above:该组件位于引用组件的上方。

  android:layout_below:该组件位于引用组件的下方。

  android:layout_alignParentLeft:该组件是否对齐父组件的左端。

  android:layout_alignParentRight:该组件是否对齐父组件的右端。

  android:layout_alignParentTop:该组件是否对齐父组件的顶部。

  android:layout_alignParentBottom:该组件是否对齐父组件的底部。

  android:layout_centerInParent:该组件是否相对于父组件居中。

  android:layout_centerHorizontal:该组件是否横向居中。

  android:layout_centerVertical:该组件是否垂直居中。

 

3.FrameLayout

  帧布局,这种布局没有任何定位方式,所有控件都会摆放在布局的左上角。这个布局应用场景不多,一般在碎片的场景下,有些作用。

 

4.TableLayout

  表格布局,不太常用,用表格的方式来排列控件,具有行和列适用于N行和N列的布局格式。可以通过android:layout_span属性来合并单元格,android:stretchColumns来进行拉伸。

 

另外还有一种绝对布局AbsoluteLayout,通过精确的坐标值来描述位置,已经不太推荐使用了。

转载于:https://www.cnblogs.com/jgs0796/p/4365649.html


http://www.niftyadmin.cn/n/1122867.html

相关文章

Linux:在文件最后一列添加递增数(awk,cat函数)

假设有文件file1.txt: aa eeeee bb eeeee cc eeeee dd eeeee 先修改为: aa eeeee 1 bb eeeee 2 cc eeeee3 dd eeeee 4 则只需要写上命令: cat file1.txt | awk {print $1,$2 " " NR} 转载于:https://www.cnblogs.com/chenwenyan/p…

03-Vue长用指令

once指令 由于Vue是响应式的,Model层中的数据发生改变页面也会跟着马上改变&#xff1b;v-once指令就是由于解决特性情况的&#xff0c;加上它后页面正常显示数据&#xff0c;后面Model中数据发生改变了页面数据也不会改变 <!DOCTYPE html> <html lang"en"…

python与大数据分析实验报告_Python与大数据分析.pptx

Python 与大数据分析;Python与大数据分析 ;自我介绍;;;;;;Python语言的诞生和发展历史;Python与蟒蛇有关&#xff1f;Guido van Rossum 于1989年在荷兰国家数学和计算机科学研究所设计出来的;Python 2.0版本于2000年10月发布。在2008年12月&#xff0c;Python 3.0发布&#xff…

云场景实践研究第20期:梨视频

更多云场景实践研究案例&#xff0c;点击这里&#xff1a;【云场景实践研究合集】联合不是简单的加法&#xff0c;而是无限的生态&#xff0c;谁会是下一个独角兽 作为中国领先的资讯类短视频生产者&#xff0c;梨视频采用阿里云平台搭建了数据处理系统和梨视频推荐系统&#…

LINQ to Objects LINQ to XML

"术语“LINQ to Objects”是指直接对任意 IEnumerable 或 IEnumerable<T> 集合使用 LINQ 查询&#xff0c;无需使用中间 LINQ 提供程序或 API&#xff0c;如 LINQ to SQL 或 LINQ to XML。 可以使用 LINQ 来查询任何可枚举的集合&#xff0c;如 List<T>、Arra…

[bzoj1010](HNOI2008)玩具装箱toy(动态规划+斜率优化+单调队列)

Description P教授要去看奥运&#xff0c;但是他舍不下他的玩具&#xff0c;于是他决定把所有 的玩具运到北京。他使用自己的压缩器进行压缩&#xff0c;其可以将任意物品变成一堆&#xff0c;再放到一种特殊的一维容器中。P教授有编号为1...N的N件玩具&#xff0c;第i件玩具 经…

03-v-bind动态绑定属性

bind的使用 v-bind使用场景是在我们要动态给元素属性赋值时&#xff0c;就需要用到v-bind&#xff1b;mustache语法时不能解决这个问题的v-bind语法糖写成冒号就好了v-bind在操作选择器的时候还可以传对象、数组;并且不会覆盖之前的 <!DOCTYPE html> <html lang&quo…

python内存操作_Python内存读写操作示例

本文实例讲述了Python内存读写操作。分享给大家供大家参考&#xff0c;具体如下&#xff1a;Python中的读写不一定只是文件&#xff0c;还有可能是内存&#xff0c;所以下面实在内存中的读写操作示例1&#xff1a;# -*- coding:utf-8 -*-#! python3from io import StringIOfStr…