如何使用 PagerSlidingTabStrip 删除标签?
How can I remove tabs using PagerSlidingTabStrip?
我在 android 中使用 PagerSlidingTabStrip 创建了一个应用程序。
我已经使用适配器和片段创建了选项卡。
当我尝试使用
删除视图时
viewPager.removeView(getView());
adapter.notifyDataSetChanged();
视图已隐藏,但应用程序向我显示了一个空视图,并且选项卡标题仍然存在。
我没有测试这个,但它会是这样的:
public class SectionsPagerAdapter extends FragmentPagerAdapter {
private final List<Fragment> mFragments = new ArrayList<>();
private final List<String> mFragmentTitles = new ArrayList<>();
public SectionsPagerAdapter(FragmentManager fm) {
super(fm);
}
public void addFragment(Fragment fragment, String title) {
mFragments.add(fragment);
mFragmentTitles.add(title);
}
public void removeFragment(int position) {
mFragments.remove(position);
mFragmentTitles.remove(position);
}
@Override
public Fragment getItem(int position) {
return mFragments.get(position);
}
@Override
public int getCount() {
return mFragments.size();
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentsTitles.get(position)
}
}
我终于知道怎么做了
@Override
public int getItemPosition(Object object)
{
int index = fragments.indexOf(object);
if (index == -1)
return POSITION_NONE;
else
return index;
}
这是工作代码!!!
我在 android 中使用 PagerSlidingTabStrip 创建了一个应用程序。
我已经使用适配器和片段创建了选项卡。
当我尝试使用
删除视图时viewPager.removeView(getView());
adapter.notifyDataSetChanged();
视图已隐藏,但应用程序向我显示了一个空视图,并且选项卡标题仍然存在。
我没有测试这个,但它会是这样的:
public class SectionsPagerAdapter extends FragmentPagerAdapter {
private final List<Fragment> mFragments = new ArrayList<>();
private final List<String> mFragmentTitles = new ArrayList<>();
public SectionsPagerAdapter(FragmentManager fm) {
super(fm);
}
public void addFragment(Fragment fragment, String title) {
mFragments.add(fragment);
mFragmentTitles.add(title);
}
public void removeFragment(int position) {
mFragments.remove(position);
mFragmentTitles.remove(position);
}
@Override
public Fragment getItem(int position) {
return mFragments.get(position);
}
@Override
public int getCount() {
return mFragments.size();
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentsTitles.get(position)
}
}
我终于知道怎么做了
@Override
public int getItemPosition(Object object)
{
int index = fragments.indexOf(object);
if (index == -1)
return POSITION_NONE;
else
return index;
}
这是工作代码!!!