300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 安卓开发之使用viewpager+fragment实现滚动tab页

安卓开发之使用viewpager+fragment实现滚动tab页

时间:2022-03-26 08:56:59

相关推荐

安卓开发之使用viewpager+fragment实现滚动tab页

闲着。用viewpager+fragment实现了个滚动tab。。轻拍,以后会陆续发先小东西出来。。爱分享,才快乐。demo见附件。。

Java代码 packagecom.example.demo;importjava.util.ArrayList;importjava.util.List;importandroid.os.Bundle;importandroid.support.v4.app.Fragment;importandroid.support.v4.app.FragmentActivity;importandroid.support.v4.app.FragmentManager;importandroid.support.v4.app.FragmentPagerAdapter;importandroid.support.v4.view.ViewPager;importandroid.support.v4.view.ViewPager.OnPageChangeListener;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.widget.TextView;publicclassMainActivityextendsFragmentActivity{privateTextViewchatView,address,findView;privateViewPagermViewPager;privateTextViewmBottomLine;privateintscreenWidth=0;privateintcurrentIndex=0;privateMyPagerAdaptermyPagerAdapter;privateList<Fragment>mFragmentList=newArrayList<Fragment>();privateList<String>mTitleList=newArrayList<String>();MyFragmentchatFragment;MyFragmentfindFragment;MyFragmentaddressFragment;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initComponents();}privatevoidinitComponents(){this.mBottomLine=(TextView)findViewById(R.id.bottom_line);this.screenWidth=getWindowManager().getDefaultDisplay().getWidth();this.chatView=(TextView)findViewById(R.id.chat_top_info);this.findView=(TextView)findViewById(R.id.find_top_info);this.address=(TextView)findViewById(R.id.address_top_info);TopTabClickListenerclickListener=newTopTabClickListener();this.chatView.setOnClickListener(clickListener);this.findView.setOnClickListener(clickListener);this.address.setOnClickListener(clickListener);this.mViewPager=(ViewPager)findViewById(R.id.viewPager);chatFragment=newMyFragment();Bundleb=newBundle();b.putInt("index",0);chatFragment.setArguments(b);mFragmentList.add(chatFragment);findFragment=newMyFragment();b=newBundle();b.putInt("index",1);findFragment.setArguments(b);mFragmentList.add(findFragment);addressFragment=newMyFragment();b=newBundle();b.putInt("index",2);addressFragment.setArguments(b);mFragmentList.add(addressFragment);myPagerAdapter=newMyPagerAdapter(getSupportFragmentManager(),mFragmentList,mTitleList);mViewPager.setAdapter(myPagerAdapter);mViewPager.setOnPageChangeListener(newOnPageChangeListener(){@OverridepublicvoidonPageSelected(intindex){}@OverridepublicvoidonPageScrolled(intindex,floatarg1,intpixes){if(pixes!=0){mBottomLine.layout((int)((index+arg1)*screenWidth/3),0,(int)((index+1+arg1)*screenWidth/3),mBottomLine.getWidth());}if(pixes==0){currentIndex=index;changeIndex(currentIndex);}System.out.println("thestateis:"+arg1+"andindexis"+index);}@OverridepublicvoidonPageScrollStateChanged(intstate){}});}publicvoidonLeftBtnClick(Viewview){this.finish();}privateclassTopTabClickListenerimplementsOnClickListener{@OverridepublicvoidonClick(Viewview){if(view.getId()==chatView.getId()){mViewPager.setCurrentItem(0);}elseif(view.getId()==findView.getId()){mViewPager.setCurrentItem(1);}else{mViewPager.setCurrentItem(2);}changeIndex(mViewPager.getCurrentItem());}}privatevoidchangeIndex(intindex){if(index==0){chatView.setTextColor(getResources().getColor(R.color.green));findView.setTextColor(getResources().getColor(R.color.black));address.setTextColor(getResources().getColor(R.color.black));}elseif(index==1){findView.setTextColor(getResources().getColor(R.color.green));chatView.setTextColor(getResources().getColor(R.color.black));address.setTextColor(getResources().getColor(R.color.black));}else{address.setTextColor(getResources().getColor(R.color.green));findView.setTextColor(getResources().getColor(R.color.black));chatView.setTextColor(getResources().getColor(R.color.black));}mBottomLine.layout((int)(index*screenWidth/3),0,(int)((index+1)*screenWidth/3),mBottomLine.getWidth());}privateclassMyPagerAdapterextendsFragmentPagerAdapter{privateList<Fragment>fragmentList;privateList<String>titleList;publicMyPagerAdapter(FragmentManagerfm,List<Fragment>fragmentList,List<String>titleList){super(fm);this.fragmentList=fragmentList;this.titleList=titleList;}/***得到每个页面*/@OverridepublicFragmentgetItem(intarg0){return(fragmentList==null||fragmentList.size()==0)?null:fragmentList.get(arg0);}/***每个页面的title*/@OverridepublicCharSequencegetPageTitle(intposition){return(titleList.size()>position)?titleList.get(position):"";}@OverridepublicintgetCount(){returnfragmentList==null?0:fragmentList.size();}}}packagecom.example.demo;importandroid.os.Bundle;importandroid.support.v4.app.Fragment;importandroid.view.LayoutInflater;importandroid.view.View;importandroid.view.ViewGroup;importandroid.widget.TextView;publicclassMyFragmentextendsFragment{privateintindex=0;privateLayoutInflatermInflater;@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);index=getArguments().getInt("index",0);}@OverridepublicViewonCreateView(LayoutInflaterinflater,ViewGroupcontainer,BundlesavedInstanceState){mInflater=inflater;TextViewv=(TextView)mInflater.inflate(R.layout.fragment,null);v.setText("第"+index);returnv;}}

demo.zip(1.4 MB)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。