Android经常使用的布局类整理(一)
Android经常使用的布局类整理
近期又回头做了一下android的项目,发觉越来越不从心,非常多东西都忘了,简单的页面布局也非常多写不出来,首先还是先整理一下一些会混淆的概念先
layout_width/layout_height的两种不同的方式
① wrap_content能包裹当中的内容就可以
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHVhbmdjaGVudGFv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHVhbmdjaGVudGFv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
② fill_parent/match_parent 填满父视图的空间
FrameLayout
最简单的布局管理器。把每个子视图放置在边框内,默认左上角。使用gravity属性来改变其位置。加入多个子视图时,会堆积在前一个子视图上面,并遮挡住上一个子视图
LinearLayout
按垂直(vertical)或水平(horizontal)对齐每个子视图,它包括的子控件将以横向或竖向的方式排列,垂直方向的布局是N行单列的结构,水平方向的布局是单行N列的结构,同意为每个子视图制定一个weight属性。以控制在可用空间内的相对大小
android:layout_weight="1"
通过设置控件的layout_weight属性以控制各个控件在布局中的相对大小,描写叙述该元素在剩余空间中占有的大小比例。
线性布局会依据该控件layout_weight值与其所处布局中全部控件layout_weight值之和的比值为该控件分配占用的区域。
样例:在水平布局的LinearLayout中有两个Button。这两个Button的layout_weight属性值都为1,那么这两个button都会被拉伸到整个屏幕宽度的一半。
假设layout_weight指为0。控件会按原大小显示,不会被拉伸(默认就是0)。对于其余layout_weight属性值大于0的控件,系统将会减去layout_weight属性值为0的控件的宽度或者高度,再用剩余的宽度或高度按对应的比例来分配每个控件显示的宽度或高度。
==========下面是button的layout_width属性设为wrap_content的时候的情况,意味着控件要优先尽可能的小=====================
①三个button的weight都不设定,默觉得0,每一个button占用自己本身的空间
②三个button的weight都设置为1 android:layout_weight="1",每一个button都占用1/3
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHVhbmdjaGVudGFv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
③三个button的weight分别设定为0,1,2。test占用自己原来大小,test2占用剩余空间的1/3,test3占用剩余空间的2/3
==========下面是button的layout_width属性设为fill_parent的时候的情况,意味着控件要优先尽可能的大=====================
①三个button的weight都不设定,test1就已经把全部空间占满了
②三个button的weight都设为1,每一个button的优先级都一样,平分界面空间
android:gravity与 android:layout_gravity的差别
android:layout_gravity是指定本元素相对它的父元素的对齐方式。比方一个button 在linearlayout里。你想把该button放在linearlayout里靠左、靠右等位置就能够通过该属性设置。
android:gravity是指定本元素的子元素相对它的对齐方式。属性是对该view中内容的限定.比方一个button 上面的text. 你能够设置该text 相对于view的靠左,靠右等位置。
android:gravity="top"(buttom、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal、center、fill、clip_vertical、clip_horizontal)控制布局中控件的对齐方式。假设是没有子控件的控件设置此属性,表示其内容的对齐方式,比方说TextView里面文字的对齐方式。若是有子控件的控件设置此属性。则表示其子控件的对齐方式。假设须要设置多个属性值,用“|”进行组合
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHVhbmdjaGVudGFv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
RelativeLayout
定义每个子视图与其它视图之间以及屏幕边界之间的相对位置
第一类 : 属性值为 true 或 false
|
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 |
离某元素上边缘的距离 |
GridLayout
网格布局在 3.0(Level 11)后引入。是最为灵活的一种布局管理器,使用一个任意选择的网格来放置视图。用虚线将布局划分为行、列和单元格,也支持一个控件在行、列上都有交错排列
首先默认是水平布局,控件从左到右依次排列,但通过指定columnCount设置列数的属性后,控件会自己主动换行进行排列,其次,假设要指定某控件固定在某行某列。设置该控件的layout_row和layout_column属性,最后,假设须要设置某控件跨越多行或多列,设置该控件的layout_rowSpan或layout_columnSpan属性为数值(表明该控件跨越的行数和列数),再设置layout_gravity属性为fill就可以(表明该控件填满所跨越的整行或整列)
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHVhbmdjaGVudGFv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt=""> ----> 效果图
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHVhbmdjaGVudGFv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" style="font-family:'Microsoft YaHei'; font-size:14px">
版权声明:本文博主原创文章,博客,未经同意不得转载。
Android经常使用的布局类整理(一)的更多相关文章
- Android 布局类控件
Android提供6种布局类的控件:LinearLayout.TableLayout.GridLayout.FrameLayout.RalativeLayout.AbsoluteLayout 网上搜到 ...
- Android 界面滑动实现---Scroller类 从源码和开发文档中学习(让你的布局动起来)
在android学习中,动作交互是软件中重要的一部分,其中的Scroller就是提供了拖动效果的类,在网上,比如说一些Launcher实现滑屏都可以通过这个类去实现.. 例子相关博文:Androi ...
- android开发 RecyclerView 列表布局
创建一个一行的自定义布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns ...
- Android开发-之五大布局
在html中大家都知道布局是什么意思了,简单来说就是将页面划分模块,比如html中的div.table等.那么Android中也是这样的.Android五大布局让界面更加美化,开发起来也更加方便.当然 ...
- 简单研究Android View绘制三 布局过程
2015-07-28 17:29:19 这一篇主要看看布局过程 一.布局过程肯定要不可避免的涉及到layout()和onLayout()方法,这两个方法都是定义在View.java中,源码如下: /* ...
- android 很多牛叉布局github地址(转)
原文地址 http://blog.csdn.net/luo15309823081/article/details/41449929 点击可到达github-------https://github.c ...
- Android 自动生成的R类
资源文件的使用分为在代码中使用和在其他资源文件中引用该资源文件.在我们编译一个Android应用时,Android会自动生成一个R类,在该类中根据不同的资源类型又生成了相应的内部类,该类包含了系统中使 ...
- Android性能优化之布局优化
最新最准确内容建议直接访问原文:Android性能优化之布局优化 本文为Android性能优化的第二篇——布局优化,主要介绍使用抽象布局标签(include, viewstub, merge).去除不 ...
- DrawerLayout带有侧滑功能的布局类(1)
DrawerLayout: DrawerLayout顾名思义就是一个管理布局的.使用方式可以与其它的布局类类似. DrawerLayout带有滑动的功能.只要按照drawerLayout的规定布局方式 ...
随机推荐
- Unreal Engine 4 创建Destructible Mesh(可破坏网格)
Unreal Engine 4的物理引擎用的是PhysX. 支持网格破坏.布料.物理粒子等,非常强大.曾经须要编码才干完毕的工作,在Unreal Engine 4 中仅仅须要拖拖拽拽就完毕了,非常方便 ...
- F5当刷新页面,出现“要再次显示此页,web该浏览器,你曾经有过发送消息再次提交...点击重试",如何防止此对话框解决方案的出现,
如何取消刷新页面弹出"重试"对话? 找了好多类似的问题都没有我想要的答案,请大家看清楚再回答. 比方说,登录过程中,成功之后转向还有一个页面success.jsp, 这时,假设刷新 ...
- [Windows Phone] 在 Windows Phone 8 控制闪光灯
原文:[Windows Phone] 在 Windows Phone 8 控制闪光灯 ? 前言 在 Windows Phone 如果想要控制闪光灯,该怎麽做?在 Windows Phone 8 提供类 ...
- Cocos2dx 3.0开发环境的搭建--Eclipse建立在Android工程
一.前言: 这部分描述了Cocos2d-x 3.0的一些基础内容,以及在Eclipse上上编译我们的Cocos2d-x项目,成功把Helloworld执行起来了.看完本篇博客之后.你就会知道Cocos ...
- Haskell 几乎无疼痛入门指南
当他重装Linux 机会虚拟机,安装 haskell 录制的过程中有什么.的方式来帮助那些谁在徘徊haskell进入外读者. 基本概念: Haskell : 是一门通用函数式语言.差点儿能够进行不论什 ...
- Code::Blocks项目配置基础
File 菜单 New :新建( Empty file/file . class . project . build target ) . Recent projects/files :近期打开的项目 ...
- 2014在百度之星程序设计大赛 - 资格 第四个问题 Labyrinth
小记:dfs暂停,不是决定性的 思维:由于只有三个方向向上和向下和向右,然后,我对待每列从左至右.然后,当在下一列的上一列的处理再加工每个值去获得正确的值,保存各坐标的数组格你可以得到最大值.每处理完 ...
- Windows下效率必备软件
AutoHotKey: 神器!神器!神器!当然也得看使用者咯(^__^) 嘻嘻…… Listary: 本地搜索神器,当然还有别的作用,More&More. Launchy : 快速启动安装的应 ...
- hdu 4454 Stealing a Cake(三分之二)
pid=4454" target="_blank" style="">题目链接:hdu 4454 Stealing a Cake 题目大意:给定 ...
- C/S通信模型和相关技术要点
差点儿全部的项目中,都会涉及到client和服务端.而client与server之间的通信又是一个非经常见但又有须要问题的技术问题. 首先,连接方式有长连接和短连接.先看看概念. 长连接短连接仅仅是一 ...