Android Using a TabLayout without a ViewPager


Example

Most of the time a TabLayout is used together with a ViewPager, in order to get the swipe functionality that comes with it.

It is possible to use a TabLayout without a ViewPager by using a TabLayout.OnTabSelectedListener.

First, add a TabLayout to your activity's XML file:

<android.support.design.widget.TabLayout
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:id="@+id/tabLayout" />

For navigation within an Activity, manually populate the UI based on the tab selected.

TabLayout tabLayout = (TabLayout) findViewById(R.id.tabLayout);
tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
    @Override
    public void onTabSelected(TabLayout.Tab tab) {
        int position = tab.getPosition();
        switch (tab.getPosition()) {
            case 1:
                getSupportFragmentManager().beginTransaction()
                    .replace(R.id.fragment_container, new ChildFragment()).commit();
                break;
            // Continue for each tab in TabLayout
    }

    @Override
    public void onTabUnselected(TabLayout.Tab tab) {

    }

    @Override
    public void onTabReselected(TabLayout.Tab tab) {

    }
});