Monday, July 25, 2016

Viewpager and TabLayout


fragment_one
<?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout
 xmlns:android="http://schemas.android.com/apk/res/android" 
 android:layout_width="match_parent" 
 android:layout_height="match_parent">

    <TextView 
 android:id="@+id/textView2" 
 android:layout_width="wrap_content" 
 android:layout_height="wrap_content" 
 android:layout_centerHorizontal="true" 
 android:layout_centerVertical="true" 
 android:text="New Text" 
 android:textSize="30sp" />
</RelativeLayout>
 
FragmentTab
 
public class FragmentTab extends Fragment {

    public FragmentTab() {
        // Required empty public constructor    }

    @Override 
 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override 
 public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment 
 return inflater.inflate(R.layout.fragment_one, container, false);
    }

}  
 
ViewPagerAdapter
 
public 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 addFragment(Fragment fragment, String title) {
        mFragmentList.add(fragment);
        mFragmentTitleList.add(title);
    }

    @Override 
 public CharSequence getPageTitle(int position) {
        return mFragmentTitleList.get(position);
    }
}
 
<android.support.design.widget.TabLayout 
 android:id="@+id/tabs" 
 android:layout_width="match_parent" 
 android:layout_height="wrap_content" 
 app:tabGravity="fill" 
 app:tabMode="fixed" />
  
<android.support.v4.view.ViewPager 
 android:id="@+id/viewpager" 
 android:layout_width="match_parent" 
 android:layout_height="match_parent" 
 app:layout_behavior="@string/appbar_scrolling_view_behavior" />  
 
 MainActivity
 
private TabLayout tabLayout;
private ViewPager viewPager;
viewPager = (ViewPager) findViewById(R.id.viewpager);
setupViewPager(viewPager);

tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setupWithViewPager(viewPager);
 
private void setupViewPager(ViewPager viewPager) {
    ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
    adapter.addFragment(new FragmentTab(), "ONE");
    adapter.addFragment(new FragmentTab(), "TWO");
    adapter.addFragment(new FragmentTab(), "THREE");
    adapter.addFragment(new FragmentTab(), "FOUR");
    viewPager.setAdapter(adapter);
} 

No comments:

Post a Comment