FragmentPagerAdapter动态添加fragment和删除fragment

FragmentPagerAdapter动态添加fragment和删除fragment,第1张

做了一个关于viewPager动态添加fragmeng以及删除fragment的功能,但是奇怪的是,移除fragment的时候,调用了notifyDataSetChanged()方法,但是fragment并没有更新成新的,后来打印日志发现根本没有调用适配器中的instantiateItem()方法,而这个问题就需要你重写getItemPosition()方法,并且返回值POSITION_NONE,之后发现虽然调用了instaniateItem()方法,可是仍然没有展示新的fragment,在于adapter回去缓存的fragment,所以你需要重写getItemId()这个方法。其实还有一种省事的方法就是使用FragmentPagerStateAdapter来适配,但是我就是不写。

我们通常是用

getSupportFragmentManager().beginTransaction().replace(R.id.fragment_view, fragment).commit()

来添加fragment到指定的视图位置。所以你的需求只需你动态的改变需要替换的这个view的位置就好了,替换流程还是不变的。

动态的改变view的位置,这需要你在java代码里动态的设置view的位置。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11458790.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-16
下一篇2023-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存