TabLayout и ViewPager -Tabs не работают после прокрутки между скользящими ящиками

TabLayout и ViewPager – щелчок по вкладкам не работает после прокрутки между скользящим ящиком.

Я работаю над приложением, у которого есть Скользящий ящик и Tablayout. Я обращаюсь к этим учебникам для скользящего ящика и для TabLayout .

Внутренний скользящий ящик

  1. TaskList -> TabLayout(Tabs(Today,Monthly,Yearly))
  2. настройки
  3. заказы

У меня проблема между Скользящим ящиком и Tablayout. Первый раз просмотрщик загружается правильно. Но когда я перехожу к следующему элементу ящика, например (Fragment Settings), после этого обратно на вкладку TaskList фрагмент viewpager не может загрузить какой-либо фрагмент, а затем прокручивать этот пейджер, а затем загружать несколько фрагментов.

Здесь код Java

 public class TaskListFragment extends Fragment { private Toolbar toolbar; private TabLayout tabLayout; private ViewPager viewPager; public TaskListFragment() { // Required empty public constructor } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_my_page, container, false); viewPager = (ViewPager)rootView.findViewById(R.id.viewpager); tabLayout = (TabLayout)rootView.findViewById(R.id.tabs); 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) { } @Override public void onTabReselected(TabLayout.Tab tab) { } }); // Inflate the layout for this fragment return rootView; } private void setupViewPager(ViewPager viewPager) { ViewPagerAdapter adapter = new ViewPagerAdapter(getFragmentManager()); adapter.addFragment(new Mypage_TodayFragment(), "TODAY"); adapter.addFragment(new Mypage_TodayFragment(), "WEEKLY"); adapter.addFragment(new Mypage_TodayFragment(), "MONTHLY"); viewPager.setAdapter(adapter); } class ViewPagerAdapter extends FragmentPagerAdapter { private final List<Fragment> mFragmentList = new ArrayList<>(); private final List<String> mFragmentTitleList = new ArrayList<>(); public ViewPagerAdapter(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); mFragmentTitleList.add(title); } @Override public CharSequence getPageTitle(int position) { return mFragmentTitleList.get(position); } } @Override public void onAttach(Activity activity) { super.onAttach(activity); } @Override public void onDetach() { super.onDetach(); } 

Здесь .XML-код

  <android.support.design.widget.CoordinatorLayout android:layout_width="match_parent" android:layout_height="262dp" android:id="@+id/view" android:layout_weight="0.16"> <android.support.design.widget.TabLayout android:id="@+id/tabs" android:layout_width="match_parent" android:layout_height="wrap_content" app:tabMode="fixed" app:tabGravity="fill" app:tabBackground="@drawable/mytabselector" app:tabIndicatorColor="@color/Orange" /> <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="50dp" app:layout_behavior="@string/appbar_scrolling_view_behavior"/> </android.support.design.widget.CoordinatorLayout> 

Заранее спасибо!!

Попробуйте это вместо

ViewPagerAdapter adapter = new ViewPagerAdapter(getFragmentManager());

делать

ViewPagerAdapter adapter = new ViewPagerAdapter(getChildFragmentManager());

Это связано с тем, что, поскольку у вас есть viewpager во фрагменте, менеджер фрагментов, который этот просмотрщик должен использовать для совершения транзакций фрагмента, должен быть childfragmentmanager