TabLayout和ViewPager - 在滑动抽屉项目之间滑动后,单击选项卡不起作用.
我的应用程序有滑动抽屉和Tablayout.我参考本教程的Sliding Drawer 和For TabLayout.
内滑动抽屉
TaskList - >TabLayout(Tabs(Today,Monthly,Yearly))
设置
命令
我在Sliding Drawer和Tablayout之间有问题.第一次viewpager加载正确.但是当我移动到下一个抽屉项目(设置片段)之后,返回到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 ListmFragmentList = new ArrayList<>(); private final List 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代码
提前致谢!!
试试这个而不是
ViewPagerAdapter adapter = new ViewPagerAdapter(getFragmentManager());
做
ViewPagerAdapter adapter = new ViewPagerAdapter(getChildFragmentManager());
这是因为由于您在片段中有一个viewpager,因此该viewpager应该用于进行片段事务的片段管理器应该是一个子片段管理器