android 右边菜单栏常在,Android经常使用的布局类整理(一)

Android经常使用的布局类整理

近期又回头做了一下android的项目,发觉越来越不从心,非常多东西都忘了,简单的页面布局也非常多写不出来,首先还是先整理一下一些会混淆的概念先

layout_width/layout_height的两种不同的方式

① wrap_content能包裹当中的内容就可以

zfyouxi-p-4795762.html

zfyouxi-p-4795762.html

SouthEast

SouthEast

② fill_parent/match_parent 填满父视图的空间

zfyouxi-p-4795762.html

zfyouxi-p-4795762.html

e4bcd721f897b214f55d902e100cd262.png

2f777c666cbf0266fe384993878e778f.png

FrameLayout

最简单的布局管理器。把每个子视图放置在边框内,默认左上角。使用gravity属性来改变其位置。加入多个子视图时,会堆积在前一个子视图上面,并遮挡住上一个子视图

LinearLayout

按垂直(vertical)或水平(horizontal)对齐每个子视图,它包括的子控件将以横向或竖向的方式排列,垂直方向的布局是N行单列的结构,水平方向的布局是单行N列的结构,同意为每个子视图制定一个weight属性。以控制在可用空间内的相对大小

00ec6f7213c83d2ac4a585e30e0a3010.png

30436de35998fbd29ed349b958556a94.png

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占用自己本身的空间

5dc99f25b19ed11eab63d4f1fc77a5e7.pngzfyouxi-p-4795762.html

②三个button的weight都设置为1 android:layout_weight="1",每一个button都占用1/3

SouthEast

zfyouxi-p-4795762.html

③三个button的weight分别设定为0,1,2。test占用自己原来大小,test2占用剩余空间的1/3,test3占用剩余空间的2/3

c40261e8d355c79a747009bcd19afcb2.png

==========下面是button的layout_width属性设为fill_parent的时候的情况,意味着控件要优先尽可能的大=====================

①三个button的weight都不设定,test1就已经把全部空间占满了

9f0d27c4e7090d7e8559e84043fcc89d.bmp

②三个button的weight都设为1,每一个button的优先级都一样,平分界面空间

b580e085b2b228ae01f59af4bcf7e9b7.bmp

zfyouxi-p-4795762.html

android:gravity与 android:layout_gravity的差别

android:layout_gravity是指定本元素相对它的父元素的对齐方式。比方一个button 在linearlayout里。你想把该button放在linearlayout里靠左、靠右等位置就能够通过该属性设置。

zfyouxi-p-4795762.html

zfyouxi-p-4795762.html

600be5984e893fec78ff41b6049814a7.png

933d9a370f653ce28ffe99944c385914.png

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里面文字的对齐方式。若是有子控件的控件设置此属性。则表示其子控件的对齐方式。假设须要设置多个属性值,用“|”进行组合

zfyouxi-p-4795762.html

zfyouxi-p-4795762.html

16b9b44cead1d41f7389247577f34465.png

SouthEast

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就可以(表明该控件填满所跨越的整行或整列)

SouthEast    ----> 效果图       

SouthEast

版权声明:本文博主原创文章,博客,未经同意不得转载。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值