Skip to content

Repository files navigation

ViewPagerSimple

add fragment with list

ViewPagerAdapter.java

importandroidx.annotation.NonNull;
importandroidx.annotation.Nullable;
importandroidx.fragment.app.FragmentPagerAdapter;
importjava.util.ArrayList;
importandroidx.fragment.app.Fragment;
importandroidx.fragment.app.FragmentManagerpublicclassViewPagerAdapterextendsFragmentPagerAdapter {
privateArrayList<Fragment> fragments;
privateArrayList<String> titles;
publicViewPagerAdapter(@NonNullFragmentManagerfm, intbehavior) {
super(fm, behavior);
this.fragments = newArrayList<>();
this.titles = newArrayList<>();
}
@NonNull@OverridepublicFragmentgetItem(intposition) {
returnfragments.get(position);
}
@OverridepublicintgetCount() {
returnfragments.size();
}
publicvoidaddFragment(Fragmentfr, Stringtitle){
fragments.add(fr);
titles.add(title);
}
@Nullable@OverridepublicCharSequencegetPageTitle(intposition) {
returntitles.get(position);
}
}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity">
<com.google.android.material.tabs.TabLayout
android:id="@+id/tab_layout"android:layout_width="match_parent"android:layout_height="wrap_content"android:background="@color/colorPrimaryDark"app:tabIndicatorColor="@color/colorAccent"app:tabSelectedTextColor="@android:color/white"app:tabTextColor="@android:color/white" />
<androidx.viewpager.widget.ViewPager
android:id="@+id/view_pager"android:layout_width="match_parent"android:layout_height="wrap_content"app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</LinearLayout>

MainActivity.java

publicclassMainActivityextendsAppCompatActivity {
TabLayouttabLayout;
ViewPagerviewPager;
@OverrideprotectedvoidonCreate(BundlesavedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tabLayout = findViewById(R.id.tab_layout);
viewPager = findViewById(R.id.view_pager);
ViewPagerAdapterviewPagerAdapter = newViewPagerAdapter(getSupportFragmentManager(), FragmentPagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
viewPagerAdapter.addFragment(FirstFragment.instance(), "First");
viewPagerAdapter.addFragment(SecondFragment.instance(), "Second");
viewPager.setAdapter(viewPagerAdapter);
tabLayout.setupWithViewPager(viewPager);
}
}

fragment_first.xml

<?xml version="1.0" encoding="utf-8"?>
<FrameLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".FirstFragment">
<!-- TODO: Update blank fragment layout -->
<TextViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:text="@string/hello_blank_fragment" />
</FrameLayout>

FirstFragment.java

publicclassFirstFragmentextendsFragment {
publicstaticFirstFragmentinstance(){
returnnewFirstFragment();
}
publicFirstFragment() {
// Required empty public constructor
}
@OverridepublicViewonCreateView(LayoutInflaterinflater, ViewGroupcontainer,
BundlesavedInstanceState) {
// Inflate the layout for this fragmentreturninflater.inflate(R.layout.fragment_first, container, false);
}
}

fragment_second.xml

<?xml version="1.0" encoding="utf-8"?>
<FrameLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".SecondFragment">
<!-- TODO: Update blank fragment layout -->
<TextViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:text="@string/hello_blank_fragment" />
</FrameLayout>

SecondFragment.java

publicclassSecondFragmentextendsFragment {
publicstaticSecondFragmentinstance(){
returnnewSecondFragment();
}
publicSecondFragment() {
// Required empty public constructor
}
@OverridepublicViewonCreateView(LayoutInflaterinflater, ViewGroupcontainer,
BundlesavedInstanceState) {
// Inflate the layout for this fragmentreturninflater.inflate(R.layout.fragment_second, container, false);
}
}

Copyright 2020 M. Fadli Zein

About

add fragment with list

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages