Как добавить ViewPager с фрагментом на фрагмент?

Я создаю приложение для Android, где во фрагменте мне нужно добавить viewPager. ViewPager будет удерживать фрагмент и будет проводить пальцем влево и вправо.

Может ли кто-нибудь помочь мне выполнить вышеуказанную задачу, я не могу найти для нее учебник. Я столкнулся с большой проблемой добавления фрагмента viewPager во фрагмент, а не активность

См. Это acadgild.com/blog/…

Ankita 06.07.2018 09:53

@Ankita он использует fragmentActivity, мне нужно использовать фрагмент.

Hitesh Matnani 06.07.2018 10:01
3
2
627
3

Ответы 3

Проверьте это: https://www.androidhive.info/2015/09/android-material-design-working-with-tabs/

Удалите TabLayout, если он не нужен

Начиная с Android 4.2, есть вложенные фрагменты.http://developer.android.com/about/versions/android-4.2.html#NestedFragments Библиотека поддержки теперь также включает поддержку этого для более старых версий 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()));
    }
 @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);
    }
}

не могли бы вы поделиться образцом учебника

Hitesh Matnani 06.07.2018 10:14

Другие вопросы по теме