我有一個視圖用作ListView
中的項目。在我的自定義適配器中,我使用View.setBackgroundResource()
更改了視圖的背景,具體取決於項目在列表中的位置。 (我爲列表中的第一個和最後一個項目分開了資源)。setBackgroundResource()丟棄我的XML佈局屬性
這樣設置了正確的背景圖像,但它具有令人討厭的副作用,即我在XML定義中設置的所有填充該觀點完全被忽略。
(如果我設置在XML的背景繪製,不要試圖在運行時適配器來改變它,填充一切工作正常。)
我如何可以改變背景圖像,並保留填充?這是一個錯誤?
編輯似乎別人已經發現了同樣的問題在這裏:Does changing the background also change the padding of a LinearLayout?
那它治癒, 謝謝。在我的情況下,可繪製的是九片PNG。 – 2011-05-04 22:23:33
有趣的,那麼也許它比我想象的更廣泛。 – dmon 2011-05-04 22:35:43
啊,的確如此。查看setBackgroundDrawable()中的視圖代碼(http://j.mp/kxQJIJ)。這顯然是使用可繪製的填充覆蓋填充。但是看一下Drawable資源文檔,除了形狀之外,沒有任何東西支持填充,所以這可能是它悲慘失敗的原因。 – dmon 2011-05-04 22:42:35