我们知道tablayout+viewpager要想动态刷新标题可以通过先设置值然后notifyDataSetChanged()来实现,这样会调getPageTitle()来获取标题,相这样
public CharSequence getPageTitle(int position) {
String title;
if(position==0)
title = normalTitle + "(" + normal + ")";
else {
title = errorTitle + "(" + error + ")";
}
return title;
}
但是,原生的title样式太单调满足不了需求,所以我们可以通过tablayout来预先设置
tabLayout.getTabAt(0).setCustomView(normalView);
看样子是可以了,但是怎么刷新呢?setCustomView()我们通常再activity中进行,还有frament的数据,很多人都是重新setframent()来替换,然后fragmentManager.executePendingTransactions(),但是这样并不是一个好办法,为了可以notifyDataSetChanged()后就刷新,我是这样进行的。在强制刷新后会运行到getItemPosition(),这里的object其实就是fragment,于是在fragment中提供update()方案就好
@Override
public int getItemPosition(Object object) {
if (object instanceof CheckNorma

本文介绍了一种在Android中使用viewpager+fragment+tablayout时,如何自定义标题并实现动态刷新的方法。通过在adapter中管理自定义view和tablayout,以及在fragment中提供update()方法来实现数据更新。在notifyDataSetChanged()后,通过重新设置自定义view以保持标题显示。同时,避免了重新setFragment()的不佳做法,确保了内容的正确刷新。
最低0.47元/天 解锁文章
656

被折叠的 条评论
为什么被折叠?



