Android 如何在片段上添加带有片段的ViewPager?
我正在构建一个android应用程序,在其中的一个片段中,我需要添加viewPager。ViewPager将保存片段,并将左右滑动 有人能帮我完成上面的任务吗?我找不到它的教程。在fragment而不是activity中添加viewPager片段时,我遇到了很多问题请检查:Android 如何在片段上添加带有片段的ViewPager?,android,android-fragments,android-viewpager,Android,Android Fragments,Android Viewpager,我正在构建一个android应用程序,在其中的一个片段中,我需要添加viewPager。ViewPager将保存片段,并将左右滑动 有人能帮我完成上面的任务吗?我找不到它的教程。在fragment而不是activity中添加viewPager片段时,我遇到了很多问题请检查: 如果不需要删除TabLayout从Android 4.2开始,有嵌套片段。支持库现在还包括对旧Android版本的支持 所以你可以这样做: @Override public void onViewCreated(Vi
如果不需要删除TabLayout从Android 4.2开始,有嵌套片段。支持库现在还包括对旧Android版本的支持 所以你可以这样做:
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
ViewPager mViewPager = (ViewPager) view.findViewById(R.id.viewPager);
mViewPager.setAdapter(new MyAdapter(getChildFragmentManager()));
}
看到这个@Ankita它正在使用fragmentActivity我需要使用fragment。你能分享一个简单的教程吗
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_lineup_team_b, container, false);
unbinder = ButterKnife.bind(this, view);
viewpager.setOffscreenPageLimit(3); //5 is number of tabs
tabsFrag = (TabLayout) view.findViewById(R.id.tabs_frag);
toolbar.setVisibility(View.GONE);
return view;
}
@Override
public void onDestroyView() {
super.onDestroyView();
unbinder.unbind();
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
setupViewPager(viewpager);
if(ViewCompat.isLaidOut(tabsFrag)) {
setViewPagerListener();
} else {
tabsFrag.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
@Override
public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
setViewPagerListener();
tabsFrag.removeOnLayoutChangeListener(this);
}
});
}
}
private void setViewPagerListener() {
tabsFrag.setupWithViewPager(viewpager);
// use class TabLayout.ViewPagerOnTabSelectedListener
// note that it's a class not an interface as OnTabSelectedListener, so you can't implement it in your activity/fragment
// methods are optional, so if you don't use them, you can not override them (e.g. onTabUnselected)
tabsFrag.setOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(viewpager) {
@Override
public void onTabReselected(TabLayout.Tab tab) {
super.onTabReselected(tab);
}
@Override
public void onTabSelected(TabLayout.Tab tab) {
super.onTabSelected(tab);
}
});
}
private void setupViewPager(ViewPager viewPager) {
adapter = new ViewPagerAdapter(getChildFragmentManager());
adapter.addFrag(new LineUpFragment_A(), "LineUp");
adapter.addFrag(new SubstitutionFragment_A(), "Substitution");
adapter.addFrag(new CoachFragment_A(), "Coach");
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 addFrag(Fragment fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}