標籤:android github 控制項
眾所周知Android的Tab控制項不是很好用,因此Github上的PagerSlidingTabStrip項目被廣為使用,該項目地址為:
https://github.com/astuetz/PagerSlidingTabStrip
其樣本圖如下:
由於其demo代碼較長,難以理解,因此我總結了一個最簡的使用方法。
第一,在ADT中匯入PagerSlidingTabStrip中的library項目,若使用Android Studio則直接匯入即可,若使用ADT則需參考我的上一篇文章進行匯入:
http://blog.csdn.net/logicteamleader/article/details/45202863
並將library項目改名為PagerSlidingTabStrip-lib
第二,建立自己的項目,其中引用PagerSlidingTabStrip-lib項目。在自己的項目中建立幾個Fragment,並繼承FragmentPagerAdapter類實現一個MyPagerAdapter類,代碼如下(略去了幾個Fragment的layout和代碼):
package wxbtabexam.apkkids.com;import java.util.ArrayList;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.util.TypedValue;import com.astuetz.PagerSlidingTabStrip;import com.example.wxbtabexam.R;public class HomeActivity extends FragmentActivity {private ViewPager pager;private MyPagerAdapter pagerAdapter;private PagerSlidingTabStrip tabs;private int currentColor =0xFF5161BC;@Overrideprotected void onCreate(Bundle arg0) {super.onCreate(arg0);setContentView(R.layout.home_layout);tabs = (PagerSlidingTabStrip) this.findViewById(R.id.tabs);pager = (ViewPager) this.findViewById(R.id.pager);ArrayList<Fragment> fragmentlist = new ArrayList<Fragment>();//注意,這三個Fragment需要自己實現ButtonFragment buttonFragment = new ButtonFragment();TextFragment textFragment = new TextFragment();MyListFragment mylistFragment = new MyListFragment();fragmentlist.add(buttonFragment);fragmentlist.add(textFragment);fragmentlist.add(mylistFragment);pagerAdapter = new MyPagerAdapter(getSupportFragmentManager(), fragmentlist);pager.setAdapter(pagerAdapter);final int pageMargin = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 4, getResources().getDisplayMetrics());pager.setPageMargin(pageMargin);tabs.setViewPager(pager);changeColor(currentColor);}private void changeColor(int newColor) {tabs.setIndicatorColor(newColor);currentColor = newColor;}//MyPagerAdapter要和上面實現的三個Fragment對應起來class MyPagerAdapter extends FragmentPagerAdapter{private final String[] TITLES = { "Buttons", "TextViews", "List" };private ArrayList<Fragment> fragmentlist;public MyPagerAdapter(FragmentManager fm,ArrayList<Fragment> list) {super(fm);fragmentlist = list;}@Overridepublic CharSequence getPageTitle(int position) {return TITLES[position];}@Overridepublic int getCount() {return fragmentlist.size();}public Fragment getItem(int position) {return fragmentlist.get(position);}}}
如此即可。下面是運行圖,雖沒有PagerSlidingTabStrip提供的Sample項目優美,但也達到了效果。此外可以仔細研究其sample項目獲得更多方法。
全新android Tab控制項PagerSlidingTabStrip最簡使用方法