ActionBar7 ActionBar ViewPager Fragment 实现可左右滑动的Tab页布局.docx

上传人:b****7 文档编号:15535290 上传时间:2023-07-05 格式:DOCX 页数:5 大小:16.72KB
下载 相关 举报
ActionBar7 ActionBar ViewPager Fragment 实现可左右滑动的Tab页布局.docx_第1页
第1页 / 共5页
ActionBar7 ActionBar ViewPager Fragment 实现可左右滑动的Tab页布局.docx_第2页
第2页 / 共5页
ActionBar7 ActionBar ViewPager Fragment 实现可左右滑动的Tab页布局.docx_第3页
第3页 / 共5页
ActionBar7 ActionBar ViewPager Fragment 实现可左右滑动的Tab页布局.docx_第4页
第4页 / 共5页
ActionBar7 ActionBar ViewPager Fragment 实现可左右滑动的Tab页布局.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

ActionBar7 ActionBar ViewPager Fragment 实现可左右滑动的Tab页布局.docx

《ActionBar7 ActionBar ViewPager Fragment 实现可左右滑动的Tab页布局.docx》由会员分享,可在线阅读,更多相关《ActionBar7 ActionBar ViewPager Fragment 实现可左右滑动的Tab页布局.docx(5页珍藏版)》请在冰点文库上搜索。

ActionBar7 ActionBar ViewPager Fragment 实现可左右滑动的Tab页布局.docx

ActionBar7ActionBarViewPagerFragment实现可左右滑动的Tab页布局

ActionBar(7)ActionBar+ViewPager+Fragment实现可左右滑动的Tab页布局

ActionBar除了可以本身定制VIEW外,还可以利用ActionBar+ViewPager+Fragment实现一些好用的效果。

如本次要说的可左右滑动的Tab页布局。

可左右滑动的Tab页布局的好处在于,用单手左右滑动操作即可,而无须去点击切换Tab页。

要实现可于

ActionBar设为NAVIGATION_MODE_TABS模式,实现Tab.

ViewPager用于装载Fragment页面组或View组,使其能左右滑动.

Fragment用自己的布局,自己的生命周期。

具体可查.

ActionBar和ViewPager的相互配合主要通过ActionBar的TabListener监听和ViewPager的PageChangeListener监听来交互。

效果如下:

实现步骤如下:

1.在XML布局文件中指定ViewPager。

[html]viewplaincopy<?

xmlversion="1.0"encoding="utf-8"?

><LinearLayoutxmlns:

android="android:

layout_width="match_parent"android:

layout_height="match_parent"android:

orientation="vertical"><android.support.v4.view.ViewPagerandroid:

id="@+id/vPager"android:

layout_width="wrap_content"android:

layout_height="wrap_content"android:

layout_gravity="center"android:

layout_weight="1.0"android:

background="#000000"android:

flipInterval="30"android:

persistentDrawingCache="animation"/></LinearLayout>

2.直接上代码

工程中ActionBarActivity引用自android-support-v7-appcompat扩展包。

具体引用方法可参考点击打开链接

[java]viewplaincopypublicclassTabBar4ActivityextendsActionBarActivity{privateActionBaractionBar;privateSpinnermActionbarSpinner;privateViewPagermPager;privateArrayList<View>mViews=null;privateArrayList<Fragment>mFragmentsList;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_tabbar);//得到BaractionBar=getSupportActionBar();//设置标题actionBar.setTitle("ActionBar+ViewPager+Fragment");actionBar.setSubtitle("努力!

");//实现用户点击ActionBar图标后返回前一个activityactionBar.setDisplayHomeAsUpEnabled(true);//定义ActionBar模式为NAVIGATION_MODE_TABSactionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);actionBar.addTab(actionBar.newTab().setText("t1").setIcon(R.drawable.ic_launcher).setTabListener(MyBarTabListener));actionBar.addTab(actionBar.newTab().setText("t2").setIcon(R.drawable.ic_launcher).setTabListener(MyBarTabListener));mPager=(ViewPager)findViewById(R.id.vPager);mFragmentsList=newArrayList<Fragment>();Fragmentpage1fragment=TabPageFragment.newInstance("ActionBar+ViewPager+Fragmentpage1");Fragmentpage2fragment=TabPageFragment.newInstance("ActionBar+ViewPager+Fragmentpage2");mFragmentsList.add(page1fragment);mFragmentsList.add(page2fragment);mPager.setAdapter(newMyFragmentPagerAdapter(getSupportFragmentManager(),mFragmentsList));//---------------------------------------------------------------------------mPager.setOnPageChangeListener(newMyPageScrollEvent());mPager.setCurrentItem(0);}@SuppressLint("NewApi")@OverridepublicbooleanonCreateOptionsMenu(Menumenu){//Inflatethemenu;thisaddsitemstotheactionbarifitispresent.//添加菜单项MenuItemfindItem=menu.add(0,1,0,"查找");MenuItemexitItem=menu.add(0,0,0,"退出");//绑定到ActionBarfindItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);exitItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);returntrue;}/***ActionBar上的Tab页更改*PublicMethodsonTabReselected(ActionBar.Tabtab,FragmentTransactionft)Calledwhenatabthatisalreadyselectedischosenagainbytheuser.onTabSelected(ActionBar.Tabtab,FragmentTransactionft)Calledwhenatabenterstheselectedstate.onTabUnselected(ActionBar.Tabtab,FragmentTransactionft)Calledwhenatabexitstheselectedstate.*/privatefinalTabListenerMyBarTabListener=newTabListener(){privatefinalstaticStringTAG="MyBarTabListener";@OverridepublicvoidonTabReselected(Tabarg0,FragmentTransactionarg1){//TODOAuto-generatedmethodstubLog.d(TAG,"onTabReselected");}@OverridepublicvoidonTabSelected(Tabarg0,FragmentTransactionarg1){//TODOAuto-generatedmethodstubLog.d(TAG,"onTabSelected");//当更改ActionBar上的Tab页有更改时,ViewPager显示相关的页面if(mPager!

=null)mPager.setCurrentItem(arg0.getPosition());}@OverridepublicvoidonTabUnselected(Tabarg0,FragmentTransactionarg1){//TODOAuto-generatedmethodstubLog.d(TAG,"onTabUnselected");}};/***用于ViewPager滑动时触发.**onPageScrollStateChanged(intstate)Calledwhenthescrollstatechanges.onPageScrolled(intposition,floatpositionOffset,intpositionOffsetPixels)Thismethodwillbeinvokedwhenthecurrentpageisscrolled,eitheraspartofaprogrammaticallyinitiatedsmoothscrollorauserinitiatedtouchscroll.onPageSelected(intposition)Thismethodwillbeinvokedwhenanewpagebecomesselected.*/classMyPageScrollEventimplementsOnPageChangeListener{privatefinalstaticStringTAG="MyPageScrollEvent";@OverridepublicvoidonPageScrollStateChanged(intarg0){//TODOAuto-generatedmethodstubLog.d(TAG,"onPageScrollStateChanged");}@OverridepublicvoidonPageScrolled(intarg0,floatarg1,intarg2){//TODOAuto-generatedmethodstubLog.d(TAG,"onPageScrolled");}@OverridepublicvoidonPageSelected(intarg0){//TODOAuto-generatedmethodstubLog.d(TAG,"onPageSelected");//当滑动ViewPager换页时,将ActionBar上的Tab显示到对应页actionBar.selectTab(actionBar.getTabAt(arg0));}}/***FragmentPagerAdapter继承自PagerAdapter,是其中的一种实现。

*它将每一个页面表示为一个Fragment,并且每一个Fragment都将会保存到fragmentmanager当中。

*而且,当用户没可能再次回到页面的时候,fragmentmanager才会将这个Fragment销毁。

.*@authorXCL**/publicclassMyFragmentPagerAdapterextendsFragmentPagerAdapter{privateArrayList<Fragment>fragmentsList;publicMyFragmentPagerAdapter(FragmentManagerfm){super(fm);}publicMyFragmentPagerAdapter(FragmentManagerfm,ArrayList<Fragment>fragments){super(fm);this.fragmentsList=fragments;}@OverridepublicFragmentgetItem(intarg0){//TODOAuto-generatedmethodstubreturnfragmentsList.get(arg0);}@OverridepublicintgetCount(){//TODOAuto-generatedmethodstubreturnfragmentsList.size();}}/***菜单事件响应*/publicbooleanonOptionsItemSelected(MenuItemitem){//TODOAuto-generatedmethodstubswitch(item.getItemId()){case0:

//displayToast("退出菜单");break;case1:

//displayToast("查找菜单");break;caseandroid.R.id.home:

Intentintent=newIntent(this,MainActivity.class);intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NEW_TASK);startActivity(intent);Toast.makeText(getApplicationContext(),"android.R.id.home",0).show();break;default:

//action_composebreak;}returnsuper.onOptionsItemSelected(item);}}TabPageFragment.java

[java]viewplaincopypublicclassTabPageFragmentextendsFragment{privatestaticfinalStringTAG="TabPageFragment";privateStringpagInfo;staticTabPageFragmentnewInstance(Strings){TabPageFragmentnewFragment=newTabPageFragment();Bundlebundle=newBundle();bundle.putString("fgArg",s);newFragment.setArguments(bundle);returnnewFragment;}@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);Log.d(TAG,"TabPageFragment-----onCreate");Bundleargs=getArguments();pagInfo=args!

=null?

args.getString("fgArg"):

"page";}@OverridepublicViewonCreateView(LayoutInflaterinflater,ViewGroupcontainer,BundlesavedInstanceState){Log.d(TAG,"TabPageFragment-----onCreateView");Viewview=inflater.inflate(R.layout.fragment_demo,container,false);TextViewviewTvPage=(TextView)view.findViewById(R.id.tv_page);viewTvPage.setText(pagInfo);returnview;}@OverridepublicvoidonDestroy(){super.onDestroy();Log.d(TAG,"TabPageFragment-----onDestroy");}}fragment_demo.xml

[html]viewplaincopy<?

xmlversion="1.0"encoding="utf-8"?

><LinearLayoutxmlns:

android="android:

layout_width="match_parent"android:

layout_height="match_parent"android:

orientation="vertical"android:

background="#708090"><TextViewandroid:

id="@+id/tv_page"android:

layout_width="wrap_content"android:

layout_height="wrap_content"android:

text="TextView"/></LinearLayout>MAIL:

xcl_168@

我的CSDNBLOG:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2