Fragment 使用总结
2017-04-08 本文已影响34人
水瓶鱼
fragment
![activity生命周期对fragment的影响](https://developer.android.google.cn/images/activity_fragment_lifecycle.png)
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的时候,操作一样。