2011-11-26 81 views
4

是否可以在整個ListView上進行背景拉伸,而不只是停留在固定位置上?帶有數據的ListView背景滾動

我記得在製作網站時,你可以讓背景固定的背景在滾動時保持原來的位置,我試圖存檔與之相反的東西,當你向下滾動時使背景跟隨數據。 ListView有這樣的事情嗎?

+0

讓我補充一點,當我使用ScrollView時,背景「跟隨」數據,就像在它裏面,它只是相對於屏幕固定的。我可以用ScrollView來做一些巧妙的事情,而不是像ListView一樣行事?如插入行並使其隨內容一起擴展,等等。 – Rasive

回答

2

使用股票ListView做你想做的事是不可能的。

ListView一次只顯示幾行,以節省View創建/管理等。這可能會導致系統崩潰。因此,ListView甚至不知道自身的總高度 - 直到該行可見時才顯示行,並且行的高度可能會有所不同。如果它甚至不知道自己的身高,它怎麼會有一個涵蓋整個身體的背景?

也就是說,使用ScrollView 的想法可能是。然而,如果你只有幾行,那麼你會失去ListView的優化 - 那麼這不是什麼大問題;但如果你正在談論幾十行(或更多),那麼你的應用程序可能會嚴重突兀。此外,您不會得到ListView的框架,該框架旨在製作更簡單的基於行的用戶界面。

可以編寫自己的ListView子類(或自定義ListView)來計算其總高度(只要知道每行的高度是固定的),然後相應地繪製背景。如果我需要需要來完成你所描述的內容,並且有太多的行可以舒適地填充到ScrollView中,那麼我可能會這麼做。