2011-09-12 50 views
3

我有一些讓情況說5情況的順序。 關鍵是我不知道他們每個人會持續多久。我只知道每一種情況何時完成。Android--具有進度條平滑增加而不是跳得更大。

所以想象這種方法是隨機調用的,它不是隨機的,但我不知道什麼時候會被調用。

public void refresh(int i){ 

} 

知道我可以通過增加他每次刷新更新進度將被調用,但用戶體驗會「看到了吧增加了20%,比等待並沒有什麼舉動,比再跳一次的20%並重新堆疊,等等...

我想實現的目標是有更多的東西。我知道這是不容易的任務,但我知道有人遇到這個問題之前,所以是什麼解決方法?

回答

1

我以前遇到過這個問題,我所做的只是估計我的「情況」中的每一個關於100%他們需要的進展。所以,任務1會達到15%,任務2可能會達到50%等。請記住,這只是一個普遍的估計。然後,在每種情況下,我會計算出100%完整性的個人任務並相應地增加。然後,我會根據給定的任務計算實際進度的數學。因此,如果我在任務2中,我將基於特定任務的100%進度計算對35%的我估計任務2實際採取的總進度。我希望這可以幫助你。

3

如果更新將基本隨機到達,您可以考慮使用「微調器」而不是進度條。最終結果幾乎相同:用戶有一些想法,即該過程正在進行中。如果您想給多一點信息,您可以更新文本標籤微調器旁邊,表示該序列的一部分正在進行:

spinning progress indicator with text label

1

快速的問題,是不是你想一個進度條?

從我所讀到的內容來看,你不知道估計時間,只有每個塊都是20%,並且你不知道每個塊需要多長時間,或者他們有多少時間才能完成,但是你希望欄移動更順利,然後大20%完成塊。

由於您只有5個測量點,除非您可以在每個任務上添加另一層進度以報告回,否則您就會陷入猜測。

如果你想猜測,你可以粗略估計任務將花費的時間。再次基於手頭的任務,您可以通過硬編碼預期時間來做出好的或壞的估計。你所要求的技巧看起來就像是進步(隱藏你在一個1/5的操作中處於不確定點的事實)

現在,在給定時間內(例如1分鐘),計數器緩慢向上移動,但隨着時間的推移,減少進度,這將意味着當你接近預期的下一個點時,你會看到酒吧移動得更快或更慢。你會有進步,但這將是純粹的隨機猜測。如果任務結束之前你有一些「失蹤」百分比,使下一步的進步差距更大,如果你慢,酒吧越來越慢。

這是很多額外的工作,以顯示最好的誤導,顯示進度沒有卡住的東西,你可能想要尋找其他選項以及進度條。