ActionBar+TabPageIndicator+ViewPager+FragmentPagerAdapter的Tab主界面

http://code.qtuba.com/article-49328.html

MainFragmentAdapter.java

[java]  view plain copy
  1. package com.example.ui;  
  2.   
  3. import android.content.Context;  
  4. import android.support.v4.app.Fragment;  
  5. import android.support.v4.app.FragmentManager;  
  6. import android.support.v4.app.FragmentPagerAdapter;  
  7.   
  8. public class MainFragmentAdapter extends FragmentPagerAdapter {  
  9.   
  10.     private String[] titles = new String[]{"新建笔记","全部笔记","分类","照片中转站","更多"};  
  11.       
  12.     public MainFragmentAdapter(FragmentManager fm) {  
  13.         super(fm);  
  14.     }  
  15.   
  16.     public MainFragmentAdapter(FragmentManager fm,Context context) {  
  17.         super(fm);  
  18.     }  
  19.   
  20.     @Override  
  21.     public Fragment getItem(int position) {  
  22.         switch (position) {  
  23.         case 0:  
  24.             return YouDaoFragmentOne.newInstance();  
  25.               
  26.         case 1:  
  27.             return YouDaoFragmentTwo.newInstance();  
  28.               
  29.         case 2:  
  30.             return YouDaoFragmentThree.newInstance();  
  31.               
  32.         case 3:  
  33.             return YouDaoFragmentFour.newInstance();  
  34.               
  35.         case 4:  
  36.             return YouDaoFragmentFive.newInstance();  
  37.         }  
  38.         return null;  
  39.     }  
  40.       
  41.     @Override  
  42.     public CharSequence getPageTitle(int position) {  
  43.         return titles[position];  
  44.     }  
  45.       
  46.     @Override  
  47.     public int getItemPosition(Object object) {  
  48.         // TODO Auto-generated method stub  
  49.         return POSITION_NONE;  
  50.     }  
  51.   
  52.     @Override  
  53.     public int getCount() {  
  54.         return titles.length;  
  55.     }  
  56.   
  57. }  
MainActivity.java

[java]  view plain copy
  1. package com.example.ui;  
  2.   
  3. import java.lang.reflect.Field;  
  4.   
  5. import android.os.Bundle;  
  6. import android.support.v4.view.ViewPager;  
  7. import android.view.ViewConfiguration;  
  8.   
  9. import com.actionbarsherlock.app.SherlockFragmentActivity;  
  10. import com.viewpagerindicator.TabPageIndicator;  
  11.   
  12.   
  13. public class MainActivity extends SherlockFragmentActivity {  
  14.   
  15.     private MainFragmentAdapter adapter;  
  16.     @Override  
  17.     protected void onCreate(Bundle savedInstanceState) {  
  18.         super.onCreate(savedInstanceState);  
  19.         setContentView(R.layout.activity_main);  
  20.   
  21.         initActionBar();  
  22.         setOverflowShowingAlways();  
  23.         initViews();  
  24.     }  
  25.   
  26.     private void initActionBar() {  
  27.         getSupportActionBar().setDisplayShowCustomEnabled(true);  
  28.         getSupportActionBar().setDisplayShowTitleEnabled(true);  
  29.         getSupportActionBar().setDisplayShowHomeEnabled(true);  
  30.         getSupportActionBar().setBackgroundDrawable(getResources().getDrawable(R.drawable.actionbar_tab_bg));  
  31.     }  
  32.     @Override  
  33.     public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {  
  34.         getSupportMenuInflater().inflate(R.menu.more_menu, menu);  
  35.         return super.onCreateOptionsMenu(menu);  
  36.     }  
  37.   
  38.     private void setOverflowShowingAlways() {  
  39.         try {   
  40.             ViewConfiguration config = ViewConfiguration.get(this);  
  41.             Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");  
  42.             menuKeyField.setAccessible(true);  
  43.             menuKeyField.setBoolean(config, false);  
  44.         } catch (Exception e) {  
  45.             e.printStackTrace();  
  46.         }  
  47.     }  
  48.       
  49.     private void initViews(){  
  50.         adapter = new MainFragmentAdapter(getSupportFragmentManager(),this);  
  51.         ViewPager pager = (ViewPager) findViewById(R.id.pager);  
  52.         pager.setAdapter(adapter);  
  53.         TabPageIndicator indicator  = (TabPageIndicator) findViewById(R.id.indicator);  
  54.         indicator.setViewPager(pager);  
  55.     }  
  56. }  

activity_main.xml
[html]  view plain copy
  1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  2.     xmlns:tools="http://schemas.android.com/tools"  
  3.     android:layout_width="match_parent"  
  4.     android:layout_height="match_parent"  
  5.     android:background="#f2f2f2"  
  6.     android:orientation="vertical">  
  7.   
  8.     <com.viewpagerindicator.TabPageIndicator  
  9.         android:id="@+id/indicator"  
  10.         android:layout_width="fill_parent"  
  11.         android:layout_height="wrap_content" />  
  12.   
  13.     <android.support.v4.view.ViewPager  
  14.         android:id="@+id/pager"  
  15.         android:layout_width="match_parent"  
  16.         android:layout_height="0dip"  
  17.         android:layout_weight="1" />  
  18.   
  19. </LinearLayout>  
截图








代码下载地址:

http://download.csdn.net/detail/shdhenghao3/8032213

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值