【深入篇】Android常用布局方式简介
LinearLayout
线性布局是程序中最常见的布局方式。一般分为水平线性布局和竖直线性布局,通过android.orientation属性可以设置线性布局的方向。
在布局中操作颜色时,要用的是十六进制的数字来表示
例如:android:textColor="#0000FF"
android:background="#0000FF"
Android:gravity
该属性用于控制布局中控件的对齐方式
如果是没有子控件的控件设置此属性,表示其内容的对齐方式
如果有子控件,表示其子控件的对齐方式
对齐方式可以重叠多个,以满足特殊的要求
例如:android:gravity="center_vertical|center_horizontal"
Android:Layout_weight
控制各个控件在布局中的相对大小,它的属性是一个非负的整数值
这里要注意的是,这个属性的分配方式是:
将所有在本布局下的非零值相加之后,分配给每个控件自己数值的百分比
AbsoluteLayout
绝对布局是指定子控件的xy精确坐标的布局方式。绝对布局缺乏灵活性,在没有绝对定位的情况下相比其他布局更加难以维护。
Android官方并不推荐使用。因为对不同屏幕大小或者分辨率的平板或者手机可能出现显示的问题。尤其在开发大众化软件时最好不要使用。
指定坐标时的属性(注意要用像素值表示坐标值)
android:layout_x="10px"
android:layout_y="20px"
android:background="#00FF00"
FrameLayout
所有添加到这个布局中的视图都以层叠的方式显示。第一个添加的组件放到最底层,最后添加的显示在最上面。
上一层的会覆盖下一层的组件。
android:layout_gravity属性,用来确定组件的位置
RelativeLayout
顾名思义,相对布局,在这个容器内部的子元素可以式样彼此之间的相对位置或者容器之间的相对位置来进行定位。
注意:不能在RelativeLayout容器与它的子元素之间产生循环依赖。
例如:不能将RelativeLayout的高设置成WRAP_CONTENT的时候将元素的高设置成ALIGN_PARENT_BOTTOM
相关布局属性:
Android:layout_above 将此控件置于给定ID控件之上
Android:layout_below 将此控件置于给定ID控件之下
Android:layout_toleftof 将此控件置于给定ID控件之左
Android:layout_torightof 将此控件置于给定ID控件之右
注意,这里的相对位置不可以覆盖。
相关对齐的属性:
android:layout_alignBaseline 该控件基线对齐给定ID控件的基线
android:layout_alignLeft 该控件于给定的ID控件左对齐
android:layout_alignTop该控件于给定的ID控件顶部对齐
android:layout_alignRight该控件于给定的ID控件右对齐
android:layout_alignBottom该控件于给定的ID控件底部对齐
对于容器的对齐方式:(在True的情况下)
android:layout_alignParentLeft 位于父控件的左部
android:layout_alignParentRight位于父控件的右部
android:layout_alignParentTop位于父控件的顶部
android:layout_alignParentBottom位于父控件的底部
对于容器位置关系的属性:(在True的情况下)
android:layout_centerInParent 控件被置于水平方向的中央
android:layout_centerHorizontal 控件被置于容器正中央
android:layout_centerVertical控件被置于垂直方向的中央
实例RelativeLayout:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:background="#0000FF"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="10px"
>
<TextView
android:id="@+id/tv01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Type here:"
/>
<EditText
android:id="@+id/txt01"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/tv01"
/>
<Button
android:id="@+id/btn01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/txt01"
android:layout_alignParentRight="true"
android:text="OK"
/>
<Button
android:id="@+id/btn02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/txt01"
android:layout_toLeftOf="@id/btn01"
android:text="Cancel"
/>
</RelativeLayout>
TableLayout
表格布局是一个ViewGruop以表格形式显示它的子视图(View)元素,即行和列标识一个视图的位置
这个布局方式同HTML中的表格布局非常类似,TableRow就像HTML表格的<tr>标记
常用属性:
android:collapseColumns 隐藏指定的列
如果要隐藏多列的话,就用逗号将列号隔开
android:stretchColumns尽量把指定的列填充空白部分
android:shrinkColumns 收缩指定的列以适应屏幕
android:layout_column 控件在TableRow中所处的列
android:layout_span 该控件所跨越的列数
——结合网络资料,欢迎大家补充
【深入篇】Android常用布局方式简介的更多相关文章
- Android常用布局和控件
一.Android常用布局属性 1. LinearLayout的特有属性 android:orientation:设置布局排列方式 android:layout_weight:设置所占布局的权重 ...
- Android开发工程师文集-Fragment,适配器,轮播图,ScrollView,Gallery 图片浏览器,Android常用布局样式
Android开发工程师文集-Fragment,适配器,轮播图,ScrollView,Gallery 图片浏览器,Android常用布局样式 Fragment FragmentManager frag ...
- Android常用布局
FrameLayout(框架布局):从屏幕的左上角开始显示对象,一个覆盖一个,主要用于选项卡视图和图像切换器.# 所有的组件都放在屏幕的左上角,并且以层叠进行显示. LinearLayout(线性布局 ...
- [Irving]Android 常用布局之RelativeLayout
RelativeLayout相对布局 相对布局 RelativeLayout 允许子元素指定它们相对于其父元素或兄弟元素的位置,这是实际布局中最常用的布局方式之一. 它灵活性大很多,当然属性也多,操作 ...
- CSS常用布局方式-两列布局、三列布局
CSS基础 2.几种布局方式1)table布局 当年主流的布局方式,第一种是通过table tr td布局 示例: <style type="text/css"> ta ...
- Android常用布局、文件存储与权限、XML
常用的布局 LinearLayout Android 2.2开始fill_parent改名为match_parent ,从API Level为8开始我们可以直接用match_parent来代替fill ...
- Android 常用布局视图
常用包 http://square.github.io/ EventBus Scroller 滚动 拖拽 # android.support.design.widget.CollapsingToolb ...
- Android常用布局属性解析 -- Layout_weight
Layout_weight是Android开发中一个比较常用的布局属性,在面试中也经常被问到.下面通过实例彻底搞懂Layout_weight的用法. 先看下面的布局代码: <?xml versi ...
- Android常规布局方式和方法
一.关于给控件添加ID属性 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xm ...
随机推荐
- java 通过httpclient调用https 的webapi
java如何通过httpclient 调用采用https方式的webapi?如何验证证书.示例:https://devdata.osisoft.com/p...需要通过httpclient调用该接口, ...
- go语言中在变量后加上接口是什么意思?
如题刚刚开始学习go 语言有些不懂: a.Data = make(map[string]interface{}) 我认为它是在申请a.Data map为字符串类型的空间,那么它后面接一个空的inter ...
- jquery easyui ajax data属性传值方式
$.ajax({ url:url, type:'post', data:data, dataType:'json', contentType: "application/ ...
- 1、Go base64编码
package main import ( "encoding/base64" "fmt") func main() { //标准base64编码 data:= ...
- 隐私:随机选择 MAC 地址
隐私:随机选择 MAC 地址 从 Android 8.0 开始,Android 设备在未连接到网络的情况下探测新网络时会使用随机 MAC 地址. 在 Android 9 中,您可以启用开发者选项(默认 ...
- BZOJ 3626 LCA(离线+树链剖分+差分)
显然,暴力求解的复杂度是无法承受的. 考虑这样的一种暴力,我们把 z 到根上的点全部打标记,对于 l 到 r 之间的点,向上搜索到第一个有标记的点求出它的深度统计答案.观察到,深度其实就是上面有几个已 ...
- rsync---远程数据同步工具
rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而 ...
- 在MAC上安装lxml到Python3
首先可以直接使用以下命令安装lxml,但是会默认安装到Python2,没有找到怎么指定安装到Python3 sudo easy_install lxml 想要安装到Python3需要先安装pip: s ...
- Java基础学习总结(11)——重载与重写
首先我们来讲讲:重载(Overloading) 一.方法的重载 方法名一样,但参数不一样,这就是重载(overload). 所谓的参数不一样,主要有两点:第一是参数的个数不一样,第二是参数的类型不一样 ...
- 去掉vs2010字符串下红色波浪线
由于在vs集成了qt库,无法提升代码. 所以下载了visual assist,然后新的问题出现了,凡是在vs中输入的字符串,下面都有红色的波浪线,而且没有错误,只是看着不舒服. 解决方法: 在VAss ...