看板 AndroidDev 關於我們 聯絡資訊
※ 引述《motors55 (‵Д′╬)》之銘言: : 各位先進好 : 最近用到viewFlipper來實現換頁效果 : 流程是這樣: : 點擊viewVlipper內的button後,viewFlipper做showNext() : 但因為點擊button後會從網路抓點東西,所以會稍微lag個零點幾秒 : 問題來了 : 若使用者在此時又按一次button則又做一次showNext() : 等到換頁執行成功時,顯示的頁面是下下頁 : 想請問看看有沒有甚麼做法可以讓button只收第一次的點擊事件 : 我試過在點擊後將button設成disable是可以擋住之後的點擊 : 但我有的button是動態產生,不好findView將它設回enable : 請教一下有沒有甚麼比較好的做法 : 謝謝 幾個建議 1. 即使lag零點幾秒,在換頁時依然相當明顯,何況你還是靠網路 要是網路爆慢或是斷線,你不是卡在那裡? UI的東西絕不能卡在這種response time無法確定的東西 你可以先直接換頁,需要網路抓的東西就等抓完再用handler填回去就好 2. 真的不行的話,你把button的reference保留下來,等抓完再call就好 3. 再不然就是按一次後就把button直接destroy掉,抓完再產生一個新的 4. 或是你可以參考Looper跟Handler,用handler.post把thread塞進queue裡面 這樣他thread就會一個接一個執行,設計得宜的話也可解決問題 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.165.228.116
motors55:感謝回覆,當然要抓網路的東西時我會先判斷網路狀態 11/18 13:14
motors55:也會用thread讓主程式跳progressDialog來表示loading 11/18 13:16
motors55:文中的button不單指button,有時是listview的item 11/18 13:18
motors55:若destroy的話,返回此頁時list裡的內容要重抓,感覺很沒 11/18 13:19
motors55:效率,本文主要想請教的還是針對showNext()對連點的處理 11/18 13:21
motors55:我也嘗試用過點擊第一次時跑thread讓主程式睡一下,再丟 11/18 13:22
motors55:handler做showNext(),但有人會覺得這樣會感覺裝置的處理 11/18 13:23
motors55:速度很慢,連換頁都要loading,但這招是我目前嘗試出最理 11/18 13:24
motors55:想的做法,viewFlipper沒有child的index實在不太好用.. 11/18 13:26
sjrom:setDisplayedChild(index) ?? 11/18 21:53