我正在开发的应用程序中遇到一些非常奇怪的行为。该应用程序不是很先进,它在sqlite数据库中存储了几个地方,并在listview,mapview等上显示。因此,在将应用程序部署到我的手机后浏览我的应用程序时,一切都很好,但过了一会儿listview不会膨胀。出现一个滚动条,好像这些项目在那里,但我看不到它们。我按下后退按钮关闭应用程序。当重新访问应用程序时,我的第一个视图(有两个按钮)会搞得一团糟。按钮填充视口,背景消失等。我无法弄清楚出了什么问题。
其他人遇到这些问题?我的手机是搭载Android 2.3.5的HTC Desire HD
如果您知道我的意思,该应用程序非常“布局重”。列表视图项目有自定义背景图像,我使用自定义字体等。但是应用程序运行顺利,直到它突然出现并显示/不显示所有错误。
我的第一个想法是存在某种记忆问题,想法?
修改 我相信这可能与定义和使用#00000000作为透明色有关。请改用 @android:color / transparent 。
解: 所以在做了一些测试之后我发现我之前在编辑中提到的是这个问题的原因。我在colors.xml中将透明颜色定义为#00000000。这似乎有效,有时......而有时候它会抓取一个可绘制的,但不是一个名为“透明”的可绘制的,它抓住了任何可绘制的。奇怪但真实。
答案 0 :(得分:2)
经过一些测试后,我终于找到了这个问题的原因。我在colors.xml中将透明颜色定义为#00000000。这似乎有效,有时......而有时候它会抓取一个可绘制的,但不是一个名为“透明”的可绘制的,它抓住了任何可绘制的。奇怪但真实。
因此,要解决此问题,您应该使用 @android:color / transparent ,而不是透明度,例如视图背景。
答案 1 :(得分:0)
如果存在内存错误,您应该能够在logcat中捕获它们。你会得到“VM在xxxx字节分配上失败”的消息(或类似的东西)。
愚蠢/愚蠢的回答:通常当我在我的应用程序中遇到布局问题时,这是因为我需要在更改布局后进行干净的构建。你可能想从那里开始。
编辑:您也可以尝试使用模拟器,如果您怀疑存在内存问题,可以使用小堆启动模拟器以尽快解决问题。您还可以在DDMS中或使用Eclipse MAT检查堆使用情况,看它是否在泄漏。
答案 2 :(得分:0)
即使使用@android:color/transparent
,我在Galaxy选项卡上遇到了同样的问题。只有将android:background="@color/transparent"
替换为android:background="@null"
才能解决问题。