fragment

activity生命周期對fragment的影響
ViewPager
- fragment懶加載
private boolean isCreate;
private boolean isVisibleToUser;
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
this.isVisibleToUser=isVisibleToUser;
loadData();
}
public void loadData(){
//加載數據
}
- 出現空白
viewpager 使用 FragmentPagerAdapter時,如果adapter中的fragment個數比viewpager可緩存的fragment個數多,當fragment被系統回收后,可能出現空白。可使用FragmentStatePagerAdapter解決此問題。
其他問題
- 多個fragment引起的消息透傳
在同一個activity中使用show hide切換顯示fragment時可能會遇到點擊當前顯示fragment空白處,其他fragment 響應點擊實現的問題。解決方法就是在fragment 的布局文件的根布局中添加 android:clickable="true" 或者給根布局添加 onTouchListener 將點擊事件消費掉 - viewpager 中動態添加刪除
viewpager中的adapter不同于listview等列表的Adapter,使用notifyDataSetChanged(),并不會引起界面的刷新。如果要刪除的界面已在viewpager緩存中需要使用代碼將fragmentmanager中的fragment刪除,并重新給viewpager設置adapter,要添加的界面position已經有fragment的時候,操作一樣。