我正在使用一个带有FragmentPagerAdapter的Viewpager来允许添加和删除页面.每页显示从互联网获取的数据.
当添加新页面时,新的片段与该页面相关联.数据通过AsyncTask获取并显示在片段中.当用户选择删除页面时,想法是销毁页面和关联的片段.
一般来说,这一切都很好.我看到的问题如下:
>您有三页数据:
[第1页] [第2页] [第3页]
>删除除最后一页之外的任何页面,如第2页;根据需要消失:
[第1页] [第3页]
>添加新页面;但是,新页面不是一个空白的页面,而是从第3页显示数据(视图).
[第1页] [第3页] [第4页,但显示第3页的观点/数据应为空白]
// Destroy fragment for this page DataListFragment curFrag = getFragmentByName(currentPage); FragmentManager fm = getSupportFragmentManager(); fm.beginTransaction().remove(curFrag).commit(); fm.executePendingTransactions(); curFrag = null; // Remove page and update adapter mPageTitles.remove(position); mAdapter.notifyDataSetChanged();
使用调试器,它显示在执行executePendingTransactions()调用后,该片段从FragmentManager中删除.但是在FrampePagerAdapters调用mAdapter.notifyDataSetChanged()中,片段被添加回来,然后在创建新页面时显示.
我尝试使用FrameStatePagerAdapter,因为这应该允许破坏碎片,但它没有工作.在我的FragmentPagerAdapter的getItemPosition()方法中,我使用返回FragmentAdapter.POSITION_NONE;正如我遇到的另一篇SO文章所指出的.
似乎该页面的View不会被销毁,而是添加到新页面中.我尝试在新页面的视图上使用removeViewAt()方法,但是没有起作用.
作为新的,我相信我错过了一些明显的东西
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。