Tuesday 6 September 2016

Tab Layout with Sliding Effect [ Fragment ]-Android Application




Source Code:





Main Activity:

package com.example.samin.slidinglayout_test01;

import android.support.design.widget.TabLayout;
import android.support.v4.content.ContextCompat;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    private TabLayout tabLayout;
    private ViewPager viewPager;
    private ViewPagerAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tabLayout = (TabLayout) findViewById(R.id.tab_layout);
        viewPager = (ViewPager) findViewById(R.id.viewpager);
        /*
        Creating Adapter and setting that adapter to the viewPager
        setSupportActionBar method takes the toolbar and sets it as
        the default action bar thus making the toolbar work like a normal
        action bar.
         */
        adapter = new ViewPagerAdapter(getSupportFragmentManager());
        viewPager.setAdapter(adapter);
        /*
        TabLayout.newTab() method creates a tab view, Now a Tab view is not the view
        which is below the tabs, its the tab itself.
         */
        //we also set the Test of the Tabs
        final TabLayout.Tab test01 = tabLayout.newTab();
        final TabLayout.Tab test02 = tabLayout.newTab();
        final TabLayout.Tab test03 = tabLayout.newTab();
        test01.setIcon(R.drawable.medicines);
        test02.setIcon(R.drawable.saved_items_inactive);
        test03.setIcon(R.drawable.alarm_inactive)
        tabLayout.addTab(test01,0);
        tabLayout.addTab(test02,1);
        tabLayout.addTab(test03,2);
        tabLayout.setTabTextColors(ContextCompat.getColorStateList(this,R.color.tab_selector));
        tabLayout.setSelectedTabIndicatorColor(ContextCompat.getColor(this,R.color.colorAccent));
        viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
        viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
            }
            @Override
            public void onPageSelected(int position) {
                switch (position) {
                    case 0:
                        test01.setIcon(R.drawable.medicines);
                        test02.setIcon(R.drawable.saved_items_inactive);
                        test03.setIcon(R.drawable.alarm_inactive);
                        break;
                    case 1:
                        test01.setIcon(R.drawable.medicines_inactive);
                        test02.setIcon(R.drawable.saved_items);
                        test03.setIcon(R.drawable.alarm_inactive);
                        break;
                    case 2:
                        test01.setIcon(R.drawable.medicines_inactive);
                        test02.setIcon(R.drawable.saved_items_inactive);
                        test03.setIcon(R.drawable.alarm);
                      break;
                }
 }
             @Override
               public void onPageScrollStateChanged(int state) {}
              }
        );
        tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
            @Override
            public void onTabSelected(TabLayout.Tab tab) {
                viewPager.setCurrentItem(tab.getPosition());
            }
            @Override
            public void onTabUnselected(TabLayout.Tab tab) {
            }
  @Override

public void onTabReselected(TabLayout.Tab tab) { }
        });
}



 Tab Fragment:



package com.example.samin.slidinglayout_test01;

import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class TabFragment extends Fragment {
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        View v = inflater.inflate(R.layout.custom_view,container,false);
        return v;
    }
}


 View Page Adapter:


package com.example.samin.slidinglayout_test01;

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;


public class ViewPagerAdapter extends FragmentStatePagerAdapter {
    public ViewPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int position) {
       return new TabFragment();
    }

    @Override
    public int getCount() {
        return 3;
    }
}

2 comments:

  1. hi i am korean and i can not speak english very well and writing but
    i want your this code totally please

    ReplyDelete