View pager design pattern with fragments.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.techpalle.karan.personaldictionary.MainActivity">
<android.support.v7.widget.Toolbar
style="@style/Toolbar"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"/>
<android.support.design.widget.TabLayout
style="@style/Toolbar"
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"/>
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:24.0.0'
compile 'com.android.support:design:24.0.0'
compile 'com.android.support:support-v4:24.0.0'
}
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initializeScreen();
}
private void initializeScreen() {
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout);
ViewPager pager = (ViewPager) findViewById(R.id.pager);
setSupportActionBar(toolbar);
SectionPagerAdapter adapter = new SectionPagerAdapter(getSupportFragmentManager());
pager.setOffscreenPageLimit(3);
pager.setAdapter(adapter);
tabLayout.setupWithViewPager(pager);
}
private class SectionPagerAdapter extends FragmentStatePagerAdapter{
public SectionPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
switch (position){
case 0: return new FirstFragment();
case 1: return new SecondFragment();
case 2: return new ThirdFragment();
default: return new FirstFragment();
}
}
@Override
public CharSequence getPageTitle(int position) {
switch (position){
case 0: return "First";
case 1: return "Second";
case 2: return "Third";
default: return "First";
}
}
@Override
public int getCount() {
return 3;
}
}
}