先上布局文件
<LinearLayout android:id="@+id/tab_viewpager" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <android.support.design.widget.TabLayout android:id="@+id/orderlist_title" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#fff" android:paddingLeft="1dp" android:paddingRight="1dp" app:tabIndicatorColor="@color/font_color_1" app:tabMode="scrollable" app:tabPadding="0dp" app:tabSelectedTextColor="@color/font_color_1" app:tabTextAppearance="@android:style/TextAppearance.Holo.Large" /> <TextView android:layout_width="match_parent" android:layout_height="1dp" android:background="#e5e5e5"/> <android.support.v4.view.ViewPager android:id="@+id/viewpager_orderlist" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/orderlist_title"/> </LinearLayout>
接下来是将TabLayout+Fragment+ViewPager关联起来
在oncreat方法中
pagerchange(); //添加三个fragment的适配器 MyPagerAdapter adapter = new MyPagerAdapter(getSupportFragmentManager(), mTitle, mFragment); mViewPager.setAdapter(adapter); //为TabLayout设置ViewPager tabs.setupWithViewPager(mViewPager); //使用ViewPager的适配器 tabs.setTabsFromPagerAdapter(adapter);
接下来是PagerAdapter
//ViewPager适配器 class MyPagerAdapter extends FragmentPagerAdapter { private List<String> title; private List<Fragment> views; public MyPagerAdapter(FragmentManager fm, List<String> title, List<Fragment> views) { super(fm); this.title = title; this.views = views; } @Override public Fragment getItem(int position) { return views.get(position); } @Override public int getCount() { return views.size(); } //配置标题的方法 @Override public CharSequence getPageTitle(int position) { return title.get(position); } }
下面是页面以及视图切换的
//这里是页面切换 private void pagerchange() { tabs = (TabLayout) findViewById(R.id.orderlist_title); mViewPager = (ViewPager) findViewById(R.id.viewpager_orderlist); mTitle.add(getString(R.string.all)); mTitle.add(getString(R.string.vip)); mTitle.add(getString(R.string.cash)); tabs.setTabGravity(TabLayout.GRAVITY_FILL);//这个地方需要注意 tabs.setTabMode(TabLayout.MODE_FIXED);//两个属性需要一起设置才能保证TabLayout能够布满整个屏幕 mAllFragment = new AllFragment(); mVipFragment = new VipFragment(); mCashFragment = new CashFragment(); // Bundle bundle = new Bundle(); // bundle.putString("all", mSearchKey); // Log.e("送bundle对象", "sjdhfjsdhgj+看来是的路口发生了的环境" + mSearchKey + "--------"); // allFragment.setArguments(bundle); mFragment.add(mAllFragment); mFragment.add(mVipFragment); mFragment.add(mCashFragment); }
整个所有的布局都可以写在Activity中,然后才是切换的三个Fragment布局,这个简单就不说了