Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 适配器刷新viewPager后选项卡消失_Android_Android Fragments_Tabs_Android Viewpager_Adapter - Fatal编程技术网

Android 适配器刷新viewPager后选项卡消失

Android 适配器刷新viewPager后选项卡消失,android,android-fragments,tabs,android-viewpager,adapter,Android,Android Fragments,Tabs,Android Viewpager,Adapter,问题 我正在使用带有图标的表格布局 那是我的适配器 public class ViewPagerIconsAdapter extends FragmentPagerAdapter { private final List<Fragment> mFragmentList = new ArrayList<>(); public ViewPagerIconsAdapter(FragmentManager manager) { super(ma

问题

我正在使用带有图标的表格布局 那是我的适配器

public class ViewPagerIconsAdapter  extends FragmentPagerAdapter {
    private final List<Fragment> mFragmentList = new ArrayList<>();

    public ViewPagerIconsAdapter(FragmentManager manager) {
        super(manager);
    }

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

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

    public void addFragment(Fragment fragment) {
      mFragmentList.add(fragment);
    }

    @Override
    public int getItemPosition(Object object) {
        return POSITION_NONE;
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return "";
    }
}
设置ViewPager方法

adapter = new ViewPagerIconsAdapter(getSupportFragmentManager());
adapter.addFragment(new Fragment1());
adapter.addFragment(new Fragment2());
adapter.addFragment(new Fragment3());
viewPager.setOffscreenPageLimit(3);
viewPager.setAdapter(adapter);
tabLayout.getTabAt(0).setIcon(tabIcons[0]);
tabLayout.getTabAt(1).setIcon(tabIcons[1]);
tabLayout.getTabAt(2).setIcon(tabIcons[2]);
设置选项卡图标方法

adapter = new ViewPagerIconsAdapter(getSupportFragmentManager());
adapter.addFragment(new Fragment1());
adapter.addFragment(new Fragment2());
adapter.addFragment(new Fragment3());
viewPager.setOffscreenPageLimit(3);
viewPager.setAdapter(adapter);
tabLayout.getTabAt(0).setIcon(tabIcons[0]);
tabLayout.getTabAt(1).setIcon(tabIcons[1]);
tabLayout.getTabAt(2).setIcon(tabIcons[2]);
问题是,当我使用notifyDataSetChanged刷新我的viewPager时,所有图标都会消失

adapter.notifyDataSetChanged();
如果你的图标是固定的,有人会有主意吗 试试这个:
tabLayout.setupWithViewPager(viewPager,false)

所以你的图标是固定的,不会被改变?根据上面的代码,我在adapter.notifyDataSetChanged()之后调用我的方法setupTabIcons方法;但没有效果,图标会消失,无法显示;试试这个不,这似乎没有任何作用,我想它通常是在以前设置的?所以不应该再设置了