我將從UI設計的角度迴應這個問題,而不是技術代碼的觀點。 (我敢肯定別人會有辦法讓列表框保留選定的項目)
我會爭辯說,使用列表框而大量的數據被添加到它是相當不可能的做得很好。讓我們只是說,你得到它來保持選擇的視野,當用戶仍然在尋找他們所需的物品時,你怎麼樣,你將無法保持它。
首先,如果預計的總加載時間少於10秒,您可以禁用列表框直到加載完成。 (很明顯,這是一個旋轉動畫或其他東西,因此用戶可以看到它正在做某件事)。我假設你已經解散了這個選項,否則你可能不會問這裏。但我認爲這值得考慮。如果加載時間太小,請考慮您的用戶是否可以通過在列表正在加載時瀏覽列表來獲得真正的收益。其次,我建議你找到一種限制列表框內容的方法,以便一次只顯示少量數據。您可以通過僅顯示以字母的單個字母開頭的名稱(以及字母選擇控件)來完成此操作。或者,您可以在頂部提供一個過濾器條目文本框,用戶可以鍵入前幾個字母,而列表框僅顯示以這些字母開頭的名稱。這將允許用戶鍵入say「sa」,列表框將顯示「sam」,「samantha」,「sacha」等。現在,只有少量的項目在列表中,因此您不必擔心它跳來跳去。如果列表中的項目數量變得太大(因爲在後臺線程上加載)並且列表超出了框的高度,則用戶可以簡單地鍵入額外的字母來進一步過濾列表。
對不起,如果這不是真的你想要的,但我認爲這將是值得帶來另類設計,因爲你忽視了它。
是否可以填充列表,然後開始工作?或者數據的到達可以隨時進行? – manji 2009-09-18 17:27:43
理想情況下(因爲它的意圖)是,他們可以處理部分結果,因爲更多結果正在進入。我不想讓他們在填充列表框時等待可能的分鐘數。 – 2009-09-18 17:52:52