Sunday, September 21, 2014

Android ViewPager Tab bar | Android ActionBar Tab bar | Android Scroll + Tab

Hello Friends,

Today I am going to share demo application for Viewpager+Tab Bar in android. For this I am using minimum android version 11 because android fragment support above version 11. you can use support fragment also.

For more detail follow the blow link


1)MainActivity

package com.androidhub4you.viewpager;

import java.util.Locale;

import android.app.ActionBar;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.Menu;

public class MainActivity extends FragmentActivity implements
              ActionBar.TabListener {

       SectionsPagerAdapter mSectionsPagerAdapter;

       /**
        * The {@link ViewPager} that will host the section contents.
        */
       ViewPager mViewPager;

       @Override
       protected void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.activity_main);

              // Set up the action bar.
              final ActionBar actionBar = getActionBar();
              actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

              // Create the adapter that will return a fragment for each of the three
              // primary sections of the app.
              mSectionsPagerAdapter = new SectionsPagerAdapter(
                           getSupportFragmentManager());

              // Set up the ViewPager with the sections adapter.
              mViewPager = (ViewPager) findViewById(R.id.pager);
              mViewPager.setAdapter(mSectionsPagerAdapter);

              // When swiping between different sections, select the corresponding
              // tab. We can also use ActionBar.Tab#select() to do this if we have
              // a reference to the Tab.
              mViewPager
                           .setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
                                  @Override
                                  public void onPageSelected(int position) {
                                         actionBar.setSelectedNavigationItem(position);
                                  }
                           });

              // For each of the sections in the app, add a tab to the action bar.
              for (int i = 0; i < mSectionsPagerAdapter.getCount(); i++) {
                     // Create a tab with text corresponding to the page title defined by
                     // the adapter. Also specify this Activity object, which implements
                     // the TabListener interface, as the callback (listener) for when
                     // this tab is selected.
                     actionBar.addTab(actionBar.newTab()
                                  .setText(mSectionsPagerAdapter.getPageTitle(i))
                                  .setTabListener(this));
              }
       }

       @Override
       public boolean onCreateOptionsMenu(Menu menu) {
              // Inflate the menu; this adds items to the action bar if it is present.
              getMenuInflater().inflate(R.menu.main, menu);
              return true;
       }

       @Override
       public void onTabSelected(ActionBar.Tab tab,
                     FragmentTransaction fragmentTransaction) {
              // When the given tab is selected, switch to the corresponding page in
              // the ViewPager.
              mViewPager.setCurrentItem(tab.getPosition());
       }

       @Override
       public void onTabUnselected(ActionBar.Tab tab,
                     FragmentTransaction fragmentTransaction) {
       }

       @Override
       public void onTabReselected(ActionBar.Tab tab,
                     FragmentTransaction fragmentTransaction) {
       }

       /**
        * A {@link FragmentPagerAdapter} that returns a fragment corresponding to
        * one of the sections/tabs/pages.
        */
       public class SectionsPagerAdapter extends FragmentPagerAdapter {

              public SectionsPagerAdapter(FragmentManager fm) {
                     super(fm);
              }

              @Override
              public Fragment getItem(int position) {
                     // getItem is called to instantiate the fragment for the given page.
                     // Return a DummySectionFragment (defined as a static inner class
                     // below) with the page number as its lone argument.
                     Fragment fragment=null;
                     if(position==0){
                           fragment = new HomeFragment();
                     }
                     else if(position==1){
                           fragment=new AboutFragment();
                     }
                     else if(position==2){
                           fragment=new ContactsFragment();
                     }
                     return fragment;
              }

              @Override
              public int getCount() {
                     // Show 3 total pages.
                     return 3;
              }

              @Override
              public CharSequence getPageTitle(int position) {
                     Locale l = Locale.getDefault();
                     switch (position) {
                     case 0:
                           return getString(R.string.title_section1).toUpperCase(l);
                     case 1:
                           return getString(R.string.title_section2).toUpperCase(l);
                     case 2:
                           return getString(R.string.title_section3).toUpperCase(l);
                     }
                     return null;
              }
       }


}


2)HomeFragment

package com.androidhub4you.viewpager;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

public class HomeFragment extends Fragment {
      
       public HomeFragment() {
       }

       @Override
       public View onCreateView(LayoutInflater inflater, ViewGroup container,
                     Bundle savedInstanceState) {
              View rootView = inflater.inflate(R.layout.fragment_main_dummy,
                           container, false);
              TextView dummyTextView = (TextView) rootView
                           .findViewById(R.id.section_label);
              dummyTextView.setText("HOME PAGE");
              return rootView;
       }
}





Thanks,
Manish




7 comments:

  1. can you help me how to sync my app with contacts like whats app

    ReplyDelete
  2. Hi Sir, Thank you So much.. Your post are so awesome. I am a big fan of your.. Please teach us some tutorials for Expandable ListView with multi level and how to display the total value of child item to parent headers ... Suppose I have a Pant category and in that category there are total 25 pants are available so how to disply that 25 on pant headers like
    Pat (25)

    ReplyDelete
  3. You can search for multi stage expandable listview on my blog from right hand from the list. Just you have to customize it according to your need. You can easily show pant(25).

    ReplyDelete
  4. Than so much sir for your quick reply. I learned from your post to How to Make Expandable ListView.. and Finalyy i did it sir But Now I need to connect That ExpandableListView with 3 level , Means.. Parents--Child--Within Child structure.. It would be your greatness if you teach a lesson to all of us about 3 level Expandable ListView with SimpleCursorTreeAdapter... Millions the for in advance sir,, You and Your Posts are so awesome... I really love it

    ReplyDelete
    Replies
    1. Hi Prince,

      My schedule is very tight I have to work for 14 hour daily, so I can't help you with code. Kindly modify it according to your requirement and I don't think it much challenging for you.

      http://www.androidhub4you.com/2014/07/android-multilevel-expandable-listview.html

      Delete
  5. This comment has been removed by the author.

    ReplyDelete
  6. This comment has been removed by the author.

    ReplyDelete