2015-09-28 36 views
3

我是新來的Android,設計一個包含「標籤」的Android應用程序。 我設計了這個:帶有使用ViewPager的圖標的選項卡,如何佈置它們?通過附加一些佈局文件

enter image description here

但我想設計這樣,

enter image description here

我想一定有辦法,像填充使用自定義適配器列表,但我我沒有發現任何事情要做到這一點,在Android Web上可用的教程不在我的腦海裏,因爲我是新的..

我的代碼:

Tabs.xml

Tabs.java

package com.example.medbleep; 

    import TabsManager.TabPagerAdapter; 

import android.app.ActionBar; 
import android.app.ActionBar.Tab; 
import android.app.FragmentTransaction; 
import android.os.Bundle; 
import android.support.v4.app.FragmentActivity; 
import android.support.v4.view.ViewPager; 
import android.widget.ImageView; 
import android.widget.TextView; 

    public class Tabs extends FragmentActivity implements ActionBar.TabListener { 
     private ViewPager viewPager; 
     private TabPagerAdapter mAdapter; 
     private android.app.ActionBar actionBar; 

     private int numberOfTabs = 5; 
     // Tab titles 
     private int[] tabIcons = {R.drawable.home,R.drawable.home,R.drawable.home,R.drawable.home,R.drawable.home,R.drawable.home}; 
     private String[] tabText = { "Home", "units", "conferences", "couses", "more" }; 
     ImageView imageView; 
     TextView textView; 

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

      imageView = (ImageView)findViewById(R.id.tab_icon); 
      textView = (TextView)findViewById(R.id.tab_title); 

      // Initialization 
      viewPager = (ViewPager) findViewById(R.id.pager); 
      viewPager.setBackgroundColor(getResources().getColor(R.color.darkLoginBlue)); 
      actionBar = getActionBar(); 
      mAdapter = new TabPagerAdapter(getSupportFragmentManager(), 
        numberOfTabs); 

      viewPager.setAdapter(mAdapter); 
      actionBar.setHomeButtonEnabled(false); 
      actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 

      // Adding Tabs 
      for (int i = 0; i<5 ; i++) { 

       actionBar.addTab(actionBar.newTab().setText(tabText[i]) 
         .setIcon(getResources().getDrawable(tabIcons[i])) 
         .setTabListener(this)); 

       //actionBar.addTab(actionBar.newTab().setCustomView(R.layout.tab_layout).setText(tabText[i]).setIcon(tabIcons[i]).setTabListener(this)); 
       //actionBar.setLogo(tabIcons[4]); 

       //actionBar.setIcon(tabIcons[i]); 
       //actionBar.setTitle(tabText[i]); 
      } 


      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 arg0, FragmentTransaction arg1) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void onTabSelected(Tab tab, FragmentTransaction arg1) { 
      // TODO Auto-generated method stub 
      // on tab selected 
      // show respected fragment view 
      viewPager.setCurrentItem(tab.getPosition()); 

     } 

     @Override 
     public void onTabUnselected(Tab arg0, FragmentTransaction arg1) { 
      // TODO Auto-generated method stub 

     } 
    } 

TabPagerAdapter.java

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

public class TabPagerAdapter extends FragmentStatePagerAdapter{ 
    int mNumOfTabs; 

    public TabPagerAdapter(FragmentManager fm, int NumOfTabs) { 
     super(fm); 
     this.mNumOfTabs = NumOfTabs; 
    } 

    @Override 
    public Fragment getItem(int position) { 

     switch (position) { 
      case 0: 
       HomeTabFragment homeTabFragment = new HomeTabFragment(); 
       return homeTabFragment; 
      case 1: 
       UnitTabFragment unitTabFragment = new UnitTabFragment(); 
       return unitTabFragment; 
      case 2: 
       ConferencesTabFragment conferencesTabFragment = new ConferencesTabFragment(); 
       return conferencesTabFragment; 
      case 3: 
       CoursesTabFragment coursesTabFragment = new CoursesTabFragment(); 
       return coursesTabFragment; 
      case 4: 
       MoreTabFragment moreTabFragment = new MoreTabFragment(); 
       return moreTabFragment; 
      default: 
       return null; 
     } 
    } 

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




} 
+1

指[本教程(https://guides.codepath.com/android/Google-Play-Style-Tabs-using-TabLayout#add-icons-to-tablayout)的標籤與圖標。 –

回答

相關問題