Sunday, 17 July 2016

Tab layout and view pager inside tab layout and viewpager

In my main activity, I create tablayout and view pager then when I switch to tab B (Tab A to Tab B) and inside Tab B, I create another tab layout and viewpager but the content become empty, only tab name is displayed. Please guide me this issue. This is my code in Tab B:

public class TabB extends BaseFragment {

private TabLayout tabLayout;
private ViewPager viewPager;

@Override
public int getLayoutResourceId() {
    return R.layout.fragmentB;
}

@Override
public void initView(View view) {
    viewPager = (ViewPager) view.findViewById(R.id.viewpager);
    setupViewPager(viewPager);
    tabLayout = (TabLayout) view.findViewById(R.id.tabs);
    tabLayout.setupWithViewPager(viewPager);
}

private void setupViewPager(ViewPager viewPager) {
    ViewChildPagerAdapter adapter = new ViewChildPagerAdapter(getChildFragmentManager());
    adapter.addFragment(new TabC, "tab c");
    adapter.addFragment(new TabD, "tab d");
    viewPager.setAdapter(adapter);
}

public static class ViewChildPagerAdapter extends FragmentStatePagerAdapter {
    private final List<Fragment> mFragmentList = new ArrayList<>();
    private final List<String> mTitle = new ArrayList<>();

    public ViewChildPagerAdapter(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, String title) {
        mFragmentList.add(fragment);
        mTitle.add(title);
    }

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


}

}



from Recent Questions - Stack Overflow http://ift.tt/29MNleE
via https://ifttt.com/ IFTTT

No comments:

Post a Comment