0

我有一個ListView屏幕,讓我生氣。ListView奇怪的故障:按下搜索動作後文本消失按鈕

每行有三個TextViews。該適配器是一個自定義ArrayAdapter,它使用視圖回收機制:如果首次請求該行,則新視圖將被充滿,否則將使用循環視圖。一切正常。我沒有顯示它,但現在假設它已正確實施。

這是正常的樣子:

enter image description here

有一個在屏幕右上角的搜索按鈕。點擊後,列表中的每個文本視圖都會「清除」!我已經調試過代碼和文本瀏覽器,文本已經設置好了,除了文本幾乎沒有顯示或者沒有顯示之外,一切都正常。下面是與DDMS的視圖轉儲:

enter image description here

貌似只有文本的第一個字母表示。這隻發生在某些設備上,並且只有當適配器的getView方法返回該行的回收視圖時,只有在按下搜索按鈕後纔會顯示鍵盤(如果我關閉它,文本仍然丟失)。如果我修改getView方法來始終使每行膨脹都不會發生,但當然這不是一個選項,因爲我的列表應該能夠處理大量項目。

看起來像一個錯誤,但我需要做一些事情。

我也測試了基於地圖的替代回收機制(基本上我把視圖放在地圖中的每一行)。仍然觀察到這種行爲。

設備是運行4.1.2的Samsung Galaxy SII。例如,在Galaxy SIII mini中沒有發生。

你知道什麼可能導致這個故障?與TextView寬度有關的東西?

在此先感謝

回答

0

我終於找到原因了。

它是適配器xml文件中的TextView之一。它被包含在一個固定寬度的LinearLayout中。它的寬度設置爲fill_parent,並將其更改爲wrap_content修復了此問題。