Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to add the icon for swipeable tabs

Tags:

I am downloading the code from here i want to dispaly tabs with icon how can posssible please help me.

enter image description here

 public class MainActivity extends FragmentActivity implements             ActionBar.TabListener {      private ViewPager viewPager;     private TabsPagerAdapter mAdapter;     private ActionBar actionBar;     // Tab titles     private String[] tabs = { "Text", "Photo", "Record" ,"Tag"};       @TargetApi(Build.VERSION_CODES.HONEYCOMB)     @SuppressLint("NewApi")     @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);          // Initilization         viewPager = (ViewPager) findViewById(R.id.pager);         actionBar = getActionBar();         mAdapter = new TabsPagerAdapter(getSupportFragmentManager());          final int[] ICONS = new int[] {             R.drawable.ic_launcher,             R.drawable.ic_launcher,             R.drawable.ic_launcher,             R.drawable.ic_launcher,     };          viewPager.setAdapter(mAdapter);         actionBar.setHomeButtonEnabled(false);         actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);                  // Adding Tabs         for (String tab_name : tabs) {             actionBar.addTab(actionBar.newTab().setText(tab_name)                     .setTabListener(this));           }          /**          * on swiping the viewpager make respective tab selected          * */         viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {              @Override             public void onPageSelected(int position) {                 // on changing the page                 // make respected tab selected                 actionBar.setSelectedNavigationItem(position);             }              @Override             public void onPageScrolled(int arg0, float arg1, int arg2) {             }              @Override             public void onPageScrollStateChanged(int arg0) {             }         });     }      @Override     public void onTabReselected(Tab tab, FragmentTransaction ft) {     }      @Override     public void onTabSelected(Tab tab, FragmentTransaction ft) {         // on tab selected         // show respected fragment view         viewPager.setCurrentItem(tab.getPosition());     }      @Override     public void onTabUnselected(Tab tab, FragmentTransaction ft) {     }  } 
like image 859
user3114723 Avatar asked Feb 03 '14 13:02

user3114723


People also ask

How do I set up two tabs on Android?

Tabs are created using newTab() method of TabLayout class. The title and icon of Tabs are set through setText(int) and setIcon(int) methods of TabListener interface respectively. Tabs of layout are attached over TabLayout using the method addTab(Tab) method.

How do I use TabLayoutMediator on Android?

Establish the link by creating an instance of this class, make sure the ViewPager2 has an adapter and then call attach() on it. Instantiating a TabLayoutMediator will only create the mediator object, attach() will link the TabLayout and the ViewPager2 together.


2 Answers

If you are using a TabLayout, just do this (This example uses three tabs):

 //An array containing your icons from the drawable directory  final int[] ICONS = new int[]{             R.drawable.icon_1,             R.drawable.icon_2,             R.drawable.icon_3     };      //Get reference to your Tablayout     TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);     tabLayout.setupWithViewPager(mViewPager);      tabLayout.getTabAt(0).setIcon(ICONS[0]);     tabLayout.getTabAt(1).setIcon(ICONS[1]);     tabLayout.getTabAt(2).setIcon(ICONS[2]); 
like image 85
Ojonugwa Jude Ochalifu Avatar answered Nov 07 '22 17:11

Ojonugwa Jude Ochalifu


Add .setIcon(resources.getDrawable(DrawableIDHere)) in your for loop, and also alter your for loop a bit.

// Adding Tabs for (int i=0; i < tabs.length; i++) { actionBar.addTab(actionBar.newTab().setText(tabs[i])                          .setIcon(resources.getDrawable(ICONS[i]))                          .setTabListener(this)); }//endfor 

Also, don't forget to put the right drawable ID's in your ICONS array!

like image 44
Jake JediMastr Ellis Avatar answered Nov 07 '22 18:11

Jake JediMastr Ellis