2010-06-07 37 views
0

我有一個ListView類似的控件,顯示各種高度的項目列表。列表的內容和項目的高度可能會發生變化 - 後臺線程正在填充列表並計算每個項目的佈局,甚至可能在用戶滾動內容的時候。 這使我想到我的問題:如何爲此視圖顯示有用的垂直滾動條?我已經看到了一些案例(特別是網絡瀏覽器),當用戶拖動它時,滑塊從鼠標光標「跳過」,底層內容的結果高度增長。我不想那樣。如何顯示內容不斷變化的列表視圖的滾動條?

到目前爲止

  1. 而是代表視高度相對於內容高度的滑塊,也許它可能代表一個時間表,而不是一個點? (這些項目按時間戳排序)。這至少會防止滾動條隨着項目佈局的計算而改變。

  2. 完全擺脫滾動條,並使用Picasa中使用的向前/向後搖桿開關(向上或向下拉動滑塊,視圖滾動得越快,直到用戶釋放滑塊爲止) 。如果我採用這條路線,是否有任何可以推薦的控制措施?

我正在使用Qt,但這一般適用於UI設計。

回答

1

國際海事組織與經典的滾動條的根本問題是,由於背景人口,有效範圍正在改變 - 因此,滾動條位置的含義改變。

如果您可以預測全部項目,您仍然可以提供滾動條並用「加載...」替換未知項目。

否則,搖桿(是一個正式名稱?)將是下一個最好的使用。然而,由於你有一個專用的比例尺(時間軸),因此最好有單獨的按鈕來跳轉專用時間(例如,一分鐘,一小時,一天......)。對於一個看起來很花哨的人來說,你可以創建一個具有跳躍特定時間的「熱點」區域的搖桿,而插值區域(線性或對數,取決於要覆蓋的比例)。

即線這個(描繪只是 「向後」 的一半):

-------------------------- 
|##|XXXXXXX|##|XXXXXXX|##| 
-------------------------- 
-1h  -1m  -1s