2012-03-30 52 views
1

我在開發的應用程序中遇到了一些非常奇怪的行爲。該應用程序不是很先進,它存儲在sqlite數據庫中的幾個地方,並以列表視圖,mapview等方式顯示。因此,將應用程序部署到我的手機後瀏覽時,一切都很好,但過了一會兒listview不會膨脹。一個滾動條就好像物品在那裏,但我看不到它們。我推後退按鈕關閉應用程序。當重新訪問應用程序時,我的第一個視圖有兩個按鈕,全部搞亂了。按鈕填充視口和背景消失等我無法弄清楚什麼是錯的。我Android應用程序中的奇怪行爲(Android 2.3.5) - 事情膨脹錯了

其他人面臨這些問題?我的手機是Android 2.3.5的HTC Desire HD

如果你明白我的意思,那麼該應用程序非常「佈局沉重」。列表視圖項目具有自定義背景圖像,我使用自定義字體等。但是,該應用程序運行平穩,直到它嚇壞了,並顯示/不顯示所有錯誤。

我的第一個想法是存在某種記憶問題,想法?

編輯: 我相信這可能與定義和使用#00000000作爲透明顏色有關。改用@android:顏色/透明

解決方案: 所以在做了一些測試之後,我發現我之前在編輯中提到的確實是造成這個問題的原因。我已將colors.xml中的透明顏色定義爲#00000000。這似乎工作,有時......而其他時間它抓取一個drawable,但不是一個名爲「透明」的drawable,它抓住任何drawable。奇怪但真實。

+0

請發佈一個明確的答案給你的問題,讓每個人看到你已經找到了解決你的問題。並感謝您的調查,它真的幫助我們。 – keaukraine 2012-10-11 13:35:00

+0

對不起,我現在發佈了一個我的問題的答案,並將其標記爲已接受。很高興我能幫上忙! :) – Alexander 2012-10-11 13:45:55

回答

2

經過一番測試,我終於找到了這個問題的原因。我已將colors.xml中的透明顏色定義爲#00000000。這似乎工作,有時......而其他時間它抓取一個drawable,但不是一個名爲「透明」的drawable,它抓住任何drawable。奇怪但真實。

所以要解決這個問題,你應該使用@android:color/transparent而不是當你想要透明度,例如視圖背景。

0

如果有內存錯誤,你應該能夠在logcat中捕獲它們。你會得到「虛擬機在xxxx字節分配失敗」消息(或類似的)。愚蠢/愚蠢的答案:當我在我的應用程序中遇到佈局問題時,這是因爲我在更改佈局後需要做一個乾淨的構建。你可能想從那裏開始。

編輯:你也可以嘗試模擬器,如果你懷疑存在內存問題,你可以用一個小堆來啓動模擬器以迫使問題更早發生。您也可以在DDMS或Eclipse MAT中檢查堆的使用情況,看看它是否泄漏。

+0

謝謝你的迴應。我沒有得到任何「虛擬機xxxx字節分配失敗」,我已經做了幾次清理。我查看了佈局,我想我可能已經發現了這個問題。在我的「關於應用程序」活動中,我在scrollview中放置了一個非常大的圖像。 scrollview也有一個很大的背景圖片(足夠愚蠢)。所以我擺脫了背景圖像,用重複的圖像取代它,刪除了滾動視圖內的圖像,問題似乎已消失。很奇怪.. – Alexander 2012-03-31 07:35:22

0

即使使用@android:color/transparent,我仍然在Galaxy選項卡上遇到同樣的問題。只能通過將android:background="@color/transparent"替換爲android:background="@null"才能解決此問題。