fragment
activity生命周期对fragment的影响
ViewPager
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的时候,操作一样。
网友评论