ActionBar +Tab+ViewPager +Fragment 支持侧滑动完成办税工具的页面展示

1:fragment_zhqrl.xml(征期日历)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    
    <TextView 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="征期日历"/>
</LinearLayout>

2:fragment_bshdzh.xml(办税地址)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    
    <TextView 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="办税地址"/>
    
</LinearLayout>

3:ZhqrlFragment.java

public class ZhqrlFragment extends Fragment{
    private View view = null;
    @Override
    public View onCreateView(LayoutInflater arg0, ViewGroup arg1, Bundle arg2) {
        view = arg0.inflate(R.layout.fragment_zhqrl, arg1, false);
        Log.i("ZhqrlFragment","*************");
        return view;
    }
}

4:BshdzhFragment.java

public class BshdzhFragment extends Fragment{
    private View view = null;
    
    @Override
    public View onCreateView(LayoutInflater arg0, ViewGroup arg1, Bundle arg2) {
        view = arg0.inflate(R.layout.fragment_bshdzh, arg1, false);
        Log.i("BshdzhFragment", "**********");
        return view;
    }
}

5:BshToolsViewPagerAdapter.java(ViewPager的适配器)

public class BshToolsViewPagerAdapter extends FragmentPagerAdapter{
    private Context mContext=null;
    
    private BshdzhFragment bshdzhFragment = new BshdzhFragment();
    private ZhqrlFragment zhqrlFragment = new ZhqrlFragment();
    
    private static final int TAB_INDEX_COUNT = 2;  
    
    private static final int TAB_INDEX_ONE = 0;  
    private static final int TAB_INDEX_TWO = 1;  
    
    public BshToolsViewPagerAdapter(FragmentManager fm, Context context) {
        super(fm);
        this.mContext = context;
    }

    @Override
    public Fragment getItem(int arg0) {
        switch (arg0) {  
        case TAB_INDEX_ONE:  
            return bshdzhFragment;  
        case TAB_INDEX_TWO:  
            return zhqrlFragment;  
        }
        throw new IllegalStateException("No fragment at position " + arg0);
    }

    @Override
    public int getCount() {
        return TAB_INDEX_COUNT; 
    }
    
    @Override  
    public CharSequence getPageTitle(int position) {  
        String tabLabel = null;  
        switch (position) {  
            case TAB_INDEX_ONE:  
                tabLabel = this.mContext.getString(R.string.tab_1);  
                break;  
            case TAB_INDEX_TWO:  
                tabLabel = this.mContext.getString(R.string.tab_2);  
                break;   
        } 
        return tabLabel;  
    } 
}

6:activity_bsh_tools.xml

<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"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".BshToolsActivity" >

    <android.support.v4.view.ViewPager  
        android:id="@+id/pagerBshTools"  
        android:layout_width="match_parent"  
        android:layout_height="match_parent" >  
        </android.support.v4.view.ViewPager> 

</RelativeLayout>

7:BshToolsActivity.java

public class BshToolsActivity extends FragmentActivity  implements ActionBar.TabListener {
    private ViewPager mViewPager = null;
    private BshToolsViewPagerAdapter mViewPagerAdapter = null; 
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_bsh_tools);
        
        setUpActionBar();
        setUpViewPager();
        setUpTabs();
    }
    
    //启用ActionBar
    private void setUpActionBar() {  
        final ActionBar actionBar = getActionBar();  
        //设置ActionBar背景
        //Drawable draw=this.getResources().getDrawable(R.drawable.ic_action_bar_bg);
        //actionBar.setBackgroundDrawable(draw);
        //启用ActionBar Tab
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);  
        //启用ActionBar的Home按键
        actionBar.setDisplayHomeAsUpEnabled(true);
    }
    
    //设置ViewPager
    private void setUpViewPager(){
        mViewPagerAdapter = new BshToolsViewPagerAdapter(getSupportFragmentManager(),this);
        mViewPager = (ViewPager)findViewById(R.id.pagerBshTools);
        mViewPager.setAdapter(mViewPagerAdapter);  
        mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {  
            @Override  
            public void onPageSelected(int position) {  
                final ActionBar actionBar = getActionBar();  
                actionBar.setSelectedNavigationItem(position);  
            }  
            
            @Override  
            public void onPageScrollStateChanged(int state) {  
                switch(state) {  
                case ViewPager.SCROLL_STATE_IDLE:          //0空闲
                      break;  
                case ViewPager.SCROLL_STATE_DRAGGING:  //1在滑行中
                      break;  
                case ViewPager.SCROLL_STATE_SETTLING:  //2目标加载完
                      break;  
                default:  
                      break;  
                }  
           }  
        });  
    }
    
    //设置Tab标签内容
    private void setUpTabs(){
        final ActionBar actionBar = getActionBar();  
        for (int i = 0; i < mViewPagerAdapter.getCount(); ++i) {  
             actionBar.addTab(actionBar.newTab()  
                      .setText(mViewPagerAdapter.getPageTitle(i))  
                      .setTabListener(this));  
        }  
    }
    
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.bsh_tools, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch(item.getItemId()){
        case android.R.id.home:
            this.finish();
            overridePendingTransition(android.R.anim.slide_in_left,android.R.anim.slide_out_right);
            return true;
        default:
            return super.onOptionsItemSelected(item);
        }
    }
    
    @Override
    public void onTabReselected(Tab arg0, FragmentTransaction arg1) {
        // TODO Auto-generated method stub
    }

    @Override
    public void onTabSelected(Tab tab, FragmentTransaction ft) {
        mViewPager.setCurrentItem(tab.getPosition());  
    }

    @Override
    public void onTabUnselected(Tab tab, FragmentTransaction ft) {
        // TODO Auto-generated method stub
    }
}

8:运行效果:

原文地址:https://www.cnblogs.com/yshyee/p/3416022.html