随笔 - 312, 文章 - 14, 评论 - 1393, 引用 - 0
数据加载中……

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

posted on 2010-03-17 09:27 银河使者 阅读(4667) 评论(3)  编辑  收藏 所属分类: java 原创移动(mobile)Google

评论

# re: Android 1.5和Android 2.1在相对布局(RelativeLayout)上的区别[未登录]  回复  更多评论   

两个图是一样的啊,全是2.1的效果
2010-03-17 14:17 | lveyo

# re: Android 1.5和Android 2.1在相对布局(RelativeLayout)上的区别  回复  更多评论   

哈哈,加错了,现在图改过来了
2010-03-17 14:54 | 银河使者

# re: Android 1.5和Android 2.1在相对布局(RelativeLayout)上的区别  回复  更多评论   

双卡机的金卡是健康的
2010-03-19 12:22 | 久久读书人

只有注册用户登录后才能发表评论。


网站导航: