当前位置:  开发笔记 > Android > 正文

滑动抽屉项之间滑动后,TabLayout和ViewPager -Tabs不起作用

如何解决《滑动抽屉项之间滑动后,TabLayout和ViewPager-Tabs不起作用》经验,为你挑选了1个好方法。

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 List mFragmentList = 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代码

   

        

    

       

提前致谢!!



1> Bhargav..:

试试这个而不是

ViewPagerAdapter adapter = new ViewPagerAdapter(getFragmentManager());

ViewPagerAdapter adapter = new ViewPagerAdapter(getChildFragmentManager());

这是因为由于您在片段中有一个viewpager,因此该viewpager应该用于进行片段事务的片段管理器应该是一个子片段管理器


非常感谢 !!它为我工作...告诉我另一件事getFragmentManager()无法在AppCompatActivity中工作???
推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有