Hi I have a TabLayout and ViewPager inside a fragment. But I can’t move between tabs to go to the child fragment (usually works when in Activity, but does not work in fragment).
Here is my code for the tablayout inside the snippet:
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View inflateView = inflater.inflate(R.layout.fragment_assign_beacon_to_event, container, false); //Viewpager and TabLayout viewPager = (ViewPager)inflateView.findViewById(R.id.viewPager); viewPager.setAdapter(new CustomAdapter(getFragmentManager(), getContext())); tabLayout = (TabLayout)inflateView.findViewById(R.id.tabLayout); // Inflate the layout for this fragment return inflateView; } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); tabLayout.post(new Runnable() { @Override public void run() { tabLayout.setupWithViewPager(viewPager); } }); tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Override public void onTabSelected(TabLayout.Tab tab) { viewPager.setCurrentItem(tab.getPosition()); } @Override public void onTabUnselected(TabLayout.Tab tab) { viewPager.setCurrentItem(tab.getPosition()); } @Override public void onTabReselected(TabLayout.Tab tab) { viewPager.setCurrentItem(tab.getPosition()); } }); Any here is my Custom Adapter class private class CustomAdapter extends FragmentPagerAdapter { private String fragments[] = {"Assign Event", "Manage Event"}; public CustomAdapter(FragmentManager supportFragmentManager, Context applicationContext) { super(supportFragmentManager); } @Override public Fragment getItem(int position) { switch (position) { case 0: // return new AssignEventToBeacon(); return new Test1(); case 1: return new ManageEventAssigned(); default: return null; } } @Override public int getCount() { return fragments.length; } @Override public CharSequence getPageTitle(int position) { return fragments[position]; } }
I doubt I have a problem with this line:
viewPager.setAdapter(new CustomAdapter(getFragmentManager(), getContext()));
Anyhelp really appreciates, thanks
source share