gpt4 book ai didi

arraylist - 动态更新Design支持TabLayout的标题

转载 作者:行者123 更新时间:2023-12-02 23:17:11 24 4
gpt4 key购买 nike

有没有办法动态更新设计支持选项卡布局中选项卡的标题?我尝试在适配器中添加一个方法,该方法更改保存选项卡标题的 ArrayList 的内容并通知适配器,但选项卡标题不会更改为新标题。

适配器:

public class TabAdapter extends FragmentPagerAdapter {
private final List<Fragment> fragments = new ArrayList<>();
private final List<String> fragmentTiles = new ArrayList<>();

public TabAdapter(FragmentManager fm) {
super(fm);
}

public void addFragment(Fragment fragment, String title) {
fragments.add(fragment);
fragmentTiles.add(title);
}

@Override
public Fragment getItem(int position) {
return fragments.get(position);
}

@Override
public int getCount() {
return fragments.size();
}

@Override
public CharSequence getPageTitle(int position) {
return fragmentTiles.get(position);
}

public void setFragmentTiles(int index, String title) {
fragmentTiles.set(index, title);

Log.e("ARRAY", fragmentTiles.toString());
}
}

我正在更改标题 ArrayList 的内容,如下所示:

adapter.setFragmentTiles("New title 1");
adapter.setFragmentTiles("New title 2");
adapter.notifyDataSetChanged();

但这行不通。我是否还必须更新 ViewPager 或 TabLayout?

最佳答案

对我有用的是在选项卡上使用 setText 方法:

i.e. tab.setText(...); // where ... is CharSequence or resId

查看 TabLayout 可用的方法,您可以获得所需的索引/位置 Tab 实例:

e.g. tabLayout.getTabAt(...); // where ... is int.

据我所知,在适配器上调用 notifyDataSetChanged() 只是调用适配器的 getCount(),而不是人们期望的刷新适配器的方法。标题。

希望这对您有所帮助或至少为您指明了正确的方向。

关于arraylist - 动态更新Design支持TabLayout的标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33201951/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com