zoukankan      html  css  js  c++  java
  • 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:运行效果:

  • 相关阅读:
    BZOJ1610: [Usaco2008 Feb]Line连线游戏
    BZOJ4554: [Tjoi2016&Heoi2016]游戏
    BZOJ3174: [Tjoi2013]拯救小矮人
    BZOJ3192: [JLOI2013]删除物品
    BZOJ3156: 防御准备
    BZOJ3875: [Ahoi2014&Jsoi2014]骑士游戏
    BZOJ 1597: [Usaco2008 Mar]土地购买
    洛谷 P3375 【模板】KMP字符串匹配
    洛谷 P3370 【模板】字符串哈希
    BZOJ 1083 繁忙的都市
  • 原文地址:https://www.cnblogs.com/yshyee/p/3416022.html
Copyright © 2011-2022 走看看