利用 viewPager+fragment 实现分页显示, 效果图:
1. 新建对应Fragment: 自己需要几个就建几个
public class AllOrdersFragment extends Fragment{
private static AllOrdersFragment instance=null;
public static AllOrdersFragment newInstance(){
if(instance==null){
instance= new AllOrdersFragment();
}
return instance;
}
//fragment布局
public View initView() {
View view = View.inflate(mContext, R.layout.trans_train, null);
return view;
}
}
2. Activity中设置:
public class TranslationActivity extends AppCompatActivity{ //必须继承这个活动
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);//隐藏标题栏
getSupportActionBar().hide();// 隐藏ActionBar
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);//全屏
setContentView(R.layout.check_order); //以上设置需在这句话之前
ViewPager mviewpager = findViewById(R.id.allOrders_viewpager);
ViewPagerAdapter viewPagerAdapter = new ViewPagerAdapter(getSupportFragmentManager());
viewPagerAdapter.addFragment(AllOrdersFragment.newInstance(), "全部订单");//添加fragment
viewPagerAdapter.addFragment(FinishedOrdersFragment.newInstance(), "已完成订单");
mviewpager.setAdapter(viewPagerAdapter);//设置适配器
mviewpager.setCurrentItem(0);
TabLayout mTabLayout = (TabLayout) findViewById(R.id.check_order_tablayout);
mTabLayout.addTab(mTabLayout.newTab().setText("全部订单"));
mTabLayout.addTab(mTabLayout.newTab().setText("已完成订单"));
// 给TabLayout设置关联ViewPager,如果设置了ViewPager,那么ViewPagerAdapter中的getPageTitle()方法返回的就是Tab上的标题
mTabLayout.setupWithViewPager(mviewpager);
}
}
ViewPagerAdapter:
public class ViewPagerAdapter extends FragmentPagerAdapter {
private final List<Fragment> mFragments = new ArrayList<>();//添加的Fragment的集合
private final List<String> mFragmentsTitles = new ArrayList<>();//每个Fragment对应的title的集合
public ViewPagerAdapter(FragmentManager fm) {
super(fm);
}
/**
* @param fragment 添加Fragment
* @param fragmentTitle Fragment的标题,即TabLayout中对应Tab的标题
*/
public void addFragment(Fragment fragment, String fragmentTitle) {
mFragments.add(fragment);
mFragmentsTitles.add(fragmentTitle);
}
@Override
public Fragment getItem(int position) {
//得到对应position的Fragment
return mFragments.get(position);
}
@Override
public int getCount() {
return mFragments.size();
}
@Override
public CharSequence getPageTitle(int position) {
//得到对应position的Fragment的title
return mFragmentsTitles.get(position);
}
}
3. Activity布局页面:
<!--viewpager标题-->
<android.support.design.widget.TabLayout
android:id="@+id/check_order_tablayout"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_30"
android:background="#91deca">
</android.support.design.widget.TabLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_gravity="center"
android:scrollbars="none">
<!--viewpager展示页面-->
<android.support.v4.view.ViewPager
android:layout_weight="1"
android:id="@+id/viewpager"
android:layout_gravity="center_vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>