user6038288
user6038288

Reputation:

Add Viewpager in fragment

Hello I created my app using fragments and I need to implement a viewpager in one of them (In that viewpager user can swipe between different information (about using the application that I am currently developing. I assume there will be 3 to 5 views with text and details)). Bellow is the code to current fragment. Can you guys give me an idea what would be the best way to implement Viewpager in fragment with let's say 3 views and every view will have like 3 or 4 things on it(Imageview,Textview etc). I have already implemented Viewpager in other activity but this is my first time I'm implementing it inside a fragment. What's the logic about it. I tried using google but it sound to complicated.

public class AboutSectionFragment extends Fragment   {


    // The onCreateView method is called when Fragment should create its View object hierarchy,
    // either dynamically or via XML layout inflation.
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.about_section, parent, false);

        // Defines the xml file for the fragment
        return rootView ;
    }

    // This event is triggered soon after onCreateView().
    // Any view setup should occur here.  E.g., view lookups and attaching view listeners.
    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {

    }
    }

Upvotes: 1

Views: 231

Answers (1)

Poras Bhardwaj
Poras Bhardwaj

Reputation: 1123

I have used ViewPager inside a fragment and its working fine for me.

Fragment class

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.home_content, container, false);
        fragments = getFragmentsList();
        pagerAdapter = new HomeViewPagerAdapter(getChildFragmentManager(),fragments);
        ViewPager = (ViewPager) view.findViewById(R.id.Home_View_Pager);
        ViewPager.setAdapter(pagerAdapter);

 private ArrayList<Fragment> getFragmentsList(){
    fragments = new ArrayList<>();
    fragments.add(HomeViewPagerFragment.getInstance());
    fragments.add(HomeViewPagerFragment.getInstance());
    fragments.add(HomeViewPagerFragment.getInstance());
    fragments.add(HomeViewPagerFragment.getInstance());
    fragments.add(HomeViewPagerFragment.getInstance());

    return fragments;
}

ViewPager Fragment Class

public class HomeViewPagerFragment extends Fragment {
    public static HomeViewPagerFragment getInstance(){
        HomeViewPagerFragment fragment = new HomeViewPagerFragment();
        return fragment;
    }
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.home_pager_fragment_layout,container,false);
        return view;
    }
}

Upvotes: 1

Related Questions