[問題] 如何在切換Tab時先跑完版面再跑資料

看板AndroidDev作者 (安蛇)時間10年前 (2015/12/03 10:22), 10年前編輯推噓0(009)
留言9則, 4人參與, 最新討論串1/1
標題這樣下有點模糊 大概就是打算用Tab切換各分類 切換的時候從Server把資料抓下來 我是在onCreateView做抓下來的動作的 會等資料完全抓好之後才notifyDataChanged 最後才Return Layout 不過這樣會遇到的問題是 必須先等資料抓完之後Layout才會出來 導致使用體驗非常Lag 我希望能像Play商店那樣 先跑出Layout,等資料到齊後才把CardView呈現上來 使用了AsyncTask不過效果好像不如預期 資料在背景處理好了 可是不知道要怎麼notifyDataChanged 請求各位幫忙 感謝 http://ideone.com/Vmbw0J -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 106.1.24.233 ※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1449109329.A.C85.html ※ 編輯: GtSoul (106.1.24.233), 12/03/2015 10:28:53

12/03 11:10, , 1F
AsyncTask可, 不然用Loader也可以
12/03 11:10, 1F

12/03 11:21, , 2F
改在onViewCreated裡面抓資料呢?
12/03 11:21, 2F

12/03 11:43, , 3F
你看起來是不太熟悉非同步code? 用了AsyncTask卻在同一個
12/03 11:43, 3F

12/03 11:44, , 4F
method裡用while waiting是哪招...
12/03 11:44, 4F

12/03 11:45, , 5F
最快改法就是getData參數加一個callback,return改void
12/03 11:45, 5F

12/03 11:47, , 6F
onPostExecute裡呼叫callback傳入資料,execute直接return
12/03 11:47, 6F

12/03 11:48, , 7F
然後最後cardAdapter加資料那兩行改成直接getData,那兩行
12/03 11:48, 7F

12/03 11:48, , 8F
移到callback裡面去
12/03 11:48, 8F

12/03 13:47, , 9F
成功了!感謝各位高手
12/03 13:47, 9F
文章代碼(AID): #1MNwTHo5 (AndroidDev)