fragment

activity生命周期對(duì)fragment的影響
ViewPager
- fragment懶加載
private boolean isCreate;
private boolean isVisibleToUser;
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
this.isVisibleToUser=isVisibleToUser;
loadData();
}
public void loadData(){
//加載數(shù)據(jù)
}
- 出現(xiàn)空白
viewpager 使用 FragmentPagerAdapter時(shí)勃蜘,如果adapter中的fragment個(gè)數(shù)比viewpager可緩存的fragment個(gè)數(shù)多烁落,當(dāng)fragment被系統(tǒng)回收后艘儒,可能出現(xiàn)空白歌馍≈荆可使用FragmentStatePagerAdapter解決此問(wèn)題僧凤。
其他問(wèn)題
- 多個(gè)fragment引起的消息透?jìng)?br> 在同一個(gè)activity中使用show hide切換顯示fragment時(shí)可能會(huì)遇到點(diǎn)擊當(dāng)前顯示fragment空白處,其他fragment 響應(yīng)點(diǎn)擊實(shí)現(xiàn)的問(wèn)題剩辟。解決方法就是在fragment 的布局文件的根布局中添加 android:clickable="true" 或者給根布局添加 onTouchListener 將點(diǎn)擊事件消費(fèi)掉
- viewpager 中動(dòng)態(tài)添加刪除
viewpager中的adapter不同于listview等列表的Adapter掐场,使用notifyDataSetChanged(),并不會(huì)引起界面的刷新往扔。如果要?jiǎng)h除的界面已在viewpager緩存中需要使用代碼將fragmentmanager中的fragment刪除,并重新給viewpager設(shè)置adapter,要添加的界面position已經(jīng)有fragment的時(shí)候刻肄,操作一樣。