效果图示例:java
一、在res/values下建一个arrays.xml布局android
代码ide
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="array_tabs">
<item>记录</item>
<item>联系人</item>
<item>收藏夹</item>
<item>群组</item>
</string-array>
</resources>布局
================this
二、在res/layout下有2个布局activity_main.xml和textview.xml布局spa
textview.xml布局xml
代码事件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center" >utf-8
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="match_parent" />get
</LinearLayout>
================
activity_main布局
代码
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="${relativePackage}.${activityClass}" >
<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</RelativeLayout>
================
三、源文件有2个MainActivity.java类和PagerFragment.java类
PagerFragment.java类
代码
public class PagerFragment extends Fragment {
private int tabIndex;
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
tabIndex = getArguments().getInt("tabIndex");
}
@Override
public View onCreateView(LayoutInflater inflater,
@Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.textview,container,false);
TextView text = (TextView) view.findViewById(R.id.textView);
switch(tabIndex){
case 0:
text.setText("这是记录页面");
break;
case 1:
text.setText("这是联系人页面");
break;
case 2:
text.setText("这是收藏夹页面");
break;
case 3:
text.setText("这是群组页面");
break;
}
return view;
}
}
===================
MainActivity类
代码
public class MainActivity extends FragmentActivity {
private ViewPager viewPager;
private ActionBar actionBar;
private String[] tabs;
private List<Fragment> list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.viewPager = (ViewPager) this.findViewById(R.id.viewPager);
actionBar = getActionBar();
//设置actionBar的模式
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
list = new ArrayList<Fragment>();
tabs = getResources().getStringArray(R.array.array_tabs);
for(int i = 0;i<tabs.length;i++){
//建立tab
Tab tab = actionBar.newTab();
//设置tab标题
tab.setText(tabs[i]);
//设置tab监听
tab.setTabListener(new TabListener() {
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
}
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
//选中tab时 viewPager要相应的改变
viewPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
}
});
actionBar.addTab(tab);//把tab添加到ActionBar
//fragment的设置
PagerFragment fragment = new PagerFragment();
Bundle bundle = new Bundle();
bundle.putInt("tabIndex", i);
fragment.setArguments(bundle);
list.add(fragment);
}
viewPager.setAdapter(new MyAdapter(getSupportFragmentManager(),list));
//viewPager事件监听
viewPager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
//滑动ViewPager时ActionBar中的tab也要相应改变
actionBar.setSelectedNavigationItem(position);
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
});
}
class MyAdapter extends FragmentPagerAdapter{
private List<Fragment> list; public MyAdapter(FragmentManager fm, List<Fragment> list) { super(fm); this.list = list; } @Override public Fragment getItem(int position) { // TODO Auto-generated method stub return this.list.get(position); } @Override public int getCount() { // TODO Auto-generated method stub return this.list.size(); } }}