Android 1.5和Android 2.1在相对布局(RelativeLayout)上的区别

本文为原创,如需转载,请注明作者和出处,谢谢!

近日在做一个程序,需要在ListView中动态扩展每一个列表项。采用的方法是将列表项中某些组件的android:visibility属性设为 gone,等需要显示该组件时,再将android:visibility属性设为visible。而且列表项的布局是RelativeLayout。 android:visibility属性为gone的组件也参与了相对位置设置。例如,有A、B、C三个组件,其中B的 android:visibility属性值为gone,也就是说,B不显示。而A和C显示。相对位置是B在A的下面,C在B的下面。这么做比理论上是没 问题的,由于启动的是android 2.1的模拟器,所以列表项看起来完全正常。如图1所示。

图1 Android 2.1模拟器的显示效果

最后在Android 1.5的模拟器上测一下,终于出大事了。android:visibility属性值为gone的组件并没有考虑。如果某个可视的图件的参照组件未显示,那这个组件就会显示在列表项的左上角。出现在文字重叠的效果。如图2所示。



图2 Android 1.5模拟器(出现了文字重叠的效果)

看来要想写某个版本的Android程序,还得老老实实地使用相应版本的Android模拟器来测试。不知道是从哪个版本的Android开始将未显示的 组件也作为参照组件的,也许需要试一试,不过不管怎样,Android 2.1是变了。最后还得重新考虑一下布局问题。希望大家在使用类似功能时要注意这里点。但愿Android 2.1以后的版本不要再变成其他的处理方式了。

估计OPhone也会出现这个问题。由于OPhone 1.6还没有放出,所以没办法测试。读者在开发OPhone程序时需要注意这一点。




Android开发完全讲义(第2版)(本书版权已输出到台湾)

http://product.dangdang.com/product.aspx?product_id=22741502



Android高薪之路:Android程序员面试宝典 》http://book.360buy.com/10970314.html


新浪微博:http://t.sina.com.cn/androidguy 昵称:李宁_Lining

更多相关文章

  1. Android(安卓)Adapter的那些事
  2. Android之Adapter:连接后端数据和前端显示的适配器接口
  3. 《疯狂Android讲义》学习笔记一
  4. Android之Adapter用法总结
  5. RelativeLayout的基本对齐方式
  6. Android* 4.1.1 (Jelly Bean) x86 模拟器系统映像
  7. 懒骨头的Android文档备份2:运行你的App
  8. Android-TextView
  9. Android(安卓)系统权限之SuperSU 模拟器root

随机推荐

  1. Android引用第三方jar的问题
  2. PopWindow与ListView多选实现
  3. Android内容提供者之读取联系人信息
  4. Android(安卓)Activity 生命周期(lifecycl
  5. Android实现淘宝倒计时功能
  6. Android(安卓)The connection to adb is
  7. Android(安卓)Studio用法之ListView(图文
  8. (Android、Java) AES加密方法
  9. Android(安卓)添加动画的标签栏
  10. Gradle中的常量