看板 AndroidDev 關於我們 聯絡資訊
請問一下各位 我使用了DrawerLayout去做往旁邊拉出選單的功能 然後當我點了選單的時候 我會在右邊去replace新的fragment FragmentManager fragmentManager = getSupportFragmentManager(); fragmentManager.beginTransaction() .replace(R.id.frame_container, fragment).commit(); 然後關閉旁邊選單 mDrawerLayout.closeDrawer(mDrawerList); 但是在關閉選單的時候都會卡一下,如果fragment的資料量越大時,會很明顯卡住很久 請問一下有什麼好的方法可以解決嘛? 我有嘗試過把fragment內的資料丟到thread去讀取,但還是一樣情況。 不知道問題點在哪?希望有經驗的大大幫幫忙,感謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 124.11.17.212 ※ 文章網址: http://www.ptt.cc/bbs/AndroidDev/M.1397181363.A.54B.html
mshockwave:如果等fragment載完再關掉drawerlayout呢? 04/11 11:45
henry4343:我有試過,會停一下然後很順的滑回去,但感覺怪怪的 04/11 12:59
henry4343:我想做到像youtube一樣滑回去的同時載入fragment 04/11 13:00
henry4343:但我不確定youtube是否為同一個fragment還是跟我一樣 04/11 13:00
slemonade:左側menu跟右側畫面放在同一個水平linearlayout下,分別 04/11 13:48
slemonade:設定visible 04/11 13:48
henry4343:我是使用內建的drawlayout去實作的.. 04/11 14:51
tac0wu:你的資料量是上網去抓去db撈的資料量嗎 04/11 19:56
tac0wu:還是畫面的複雜程度 04/11 19:56
henry4343:我的資料其實很簡單,感覺是replace framgment時有問題 04/11 23:03
henry4343:目前用假資料,用arraylist放string然後listview印出 04/11 23:04
henry4343:會頓我也覺得很奇怪 04/11 23:04
tac0wu:你fragment的layout設計的很複雜? 太多深太多view太濫用 04/12 12:45
tac0wu:relative layout? 04/12 12:45
tac0wu:看你之前的回應 是你Fragment載入的時間是可以讓使用者察覺 04/12 12:55
tac0wu:的到的 若是你要適用 這種方法 先將replace一個waiting的 04/12 12:56
tac0wu:fragment or 畫面 然後就關閉drawer 等到 fragment載好在放 04/12 12:56
tac0wu:入? 04/12 12:56
slemonade:上次的建議看來不適合你,換第二種方法建議:如果是同一 04/12 17:14
slemonade:個fragment,不要用replace…請用detach隱藏,attach替 04/12 17:15
slemonade:代replace 04/12 17:15
henry4343:是不同的fragment,所以需要用replace,畫面就list view 04/12 19:38
henry4343:然後我custom成card ui,我有試過把replace注解掉就順 04/12 19:39
henry4343:所以應該不是new fragment的問題,我在試試其他方法 04/12 19:40
henry4343:感謝:) 04/12 19:41
slemonade:Fragment的最佳做法(個人認為),應該是我上才的回文 04/12 21:16
slemonade:方式,該方式不限於同個fragment;將會使用到的fragment 04/12 21:16
slemonade:宣告成該activity的全域變數,使用findfragmentbytag的 04/12 21:16
slemonade:方式出始化,這樣才能保證使用同一個fragment不會被new 04/12 21:16
slemonade:兩次;方便看一下程式碼嗎? 04/12 21:16
givemepass:我是用isadd()來判斷是否加入container 如果有就show 04/12 21:55
givemepass:沒有就add 這樣只會第一次慢而已 它不會重新attach 04/12 21:55
givemepass:如果要換的 要用hide 這樣應該可以達成你要的效果 04/12 21:56
henry4343:感謝樓上,我用show跟add實作,現在只有第一次會慢 04/17 11:07
henry4343:但有個小問題,fragment show的時候不會觸發onresume 04/17 11:08
henry4343:請問fragment該怎麼知道被show了?因為需要reload資料 04/17 11:09
henry4343:感謝!!!!! 04/17 11:09