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

近日在做一个程序,需要在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所示。
Android 1.5和Android 2.1在相对布局(RelativeLayout)上的区别
图1 Android 2.1模拟器的显示效果

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

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

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

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

更多相关文章

  1. android Manifest.xml全局配置文件中根标签中package属性及标签
  2. android:layout_alignleft layout_toleftof区别,详解RelativeLayo
  3. Chronometer android计时器组件Chronometer的使用,android通话时
  4. Android基础入门教程——8.4.4 Android动画合集之属性动画-又见
  5. Android进阶 ——— Android官方架构组件Lifecycle
  6. Android属性动画使用浅析
  7. Android Studio 第六十四期 - Android业务组件化之URL Scheme使
  8. 【Android】利用Fiddler进行抓包详解教程。抓取接口以及数据,可以

随机推荐

  1. IDA动态调试Android的DEX文件
  2. 2012-7-23 android shape
  3. Android(安卓)Layout XML属性
  4. 中国移动开发者社区专访:学习Android的两
  5. Android(安卓)Service生命周期及用法!
  6. Android(安卓)Bluetooth蓝牙开发:Bluetoot
  7. Android(安卓)4.1源代码今日将发布
  8. Android启动模式
  9. Android中Activity启动模式详解
  10. Android中使用WebView, WebChromeClient