转贴 layout of android

1. Absoute layout

不提倡使用。因为需要手工配置每一个View的位置,且每个位置都是绝对位置。在任何时候需要改变的时候,都不方便。

2. Frame layout
每一行显示一个图标。如果两个图标在一起的话,图标会overlap. 当图标之间发生overlap的时候,就会以overlap的形式布局。
FrameLayout有这样一个用处:就是界面元素若需要通过程序控制其可见性,可以使用FrameLayout.

使用 android:visibility 属性,它有三个值
visible - 显示;
invisible -不可见,但是依然占据位置;
gone - 不可见,并不占据位置;

3. LinearLayout
在一行单独组织界面元素,可以通过属性android:orientation 设置水平组织方式界面元素android:orientation="horizontal";
设置垂直方式组织界面元素
android:orientation="vertical"

可以嵌套使用LinearLayout,也就是在一个LinearLayout中使用另一个LinearLayout.

NOTE: nested layout 并不局限于一种形式的layout。比如可以把LinearLayout嵌套在Frame layout 里。

4.RelativeLayout
这是一个相对来说复杂的布局方式。
每个界面元素都是相对于其他元素的位置来布局。
参考:http://www.learn-android.com/2010/01/05/android-layout-tutorial/5/

5. TableLayout
Table布局。只需在XML里定义row, android自动调整column。
如果一个row需要占据3个column,则可以通过android:layout_span=3来设置。

默认情况下:
如果一个元素需要放在一个row里,要放到哪里呢?android默认把它放在这个row的第一个没有被占用的column。
如果想特定地把一个元素放在一个column,那么需要用 ndroid:layout_column 来设置。

6. AlternateLayout
在LinearLayout中,如果在一行放了太多的界面元素,那么很可能发生在一行显示空间不够,界面元素发生重叠现象。
这种问题,往往和屏幕大小,和屏幕的现实方向有关系。
比如,在水平方向显示没有问题,但是在垂直方式显示会有overlap.

那么解决这个问题的方式就是AlternateLayout。

在读取res/layout folder中layout XML的时候,android首先会在查看一下三种布局

res/layout-land – The alternate layout for a landscape UI
res/layout-port – The alternate layout for a portrait UI
res/lauout-square – The alternate layout for a square UI

在res下建立一个folder, 名为layout-land,原来正常显示的XML放在这个文件夹下一份。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值