本文将更进一步, 在很多实际的应用场景中我们需要一个更复杂的场景,比如说需要在一个菜单选项中集成多个tab来集中显示信息。这个时候 Viewpager就派上用场了。
本例中我们将通过SlidingMenu + ViewPager+Fragment 实现带TAB的SlidingMenu。先看看具体的效果。
实现步骤跟上一篇大体相同,这里着重说需要修改的地方
首先我们需要添加一个PagerAdapter来自动适配Tab里面的Fragment ,就像ListView中的BaseAdapter差不多,只是需要实现的方法有一些区别。
- package com.example.slidingmenuviewpagertest.adapter;
- import java.util.List;
- import com.example.slidingmenuviewpagertest.entity.ContentBean;
- import com.example.slidingmenuviewpagertest.fragment.TestContentFragment;
- import android.support.v4.app.Fragment;
- import android.support.v4.app.FragmentManager;
- import android.support.v4.app.FragmentPagerAdapter;
- public class ContentFragmentPagerAdapter extends FragmentPagerAdapter {
- private List list;
- public ContentFragmentPagerAdapter(FragmentManager fm) {
- super(fm);
- }
- public ContentFragmentPagerAdapter(FragmentManager fm,List list) {
- super(fm);
- this.list = list;
- }
- @Override
- public Fragment getItem(int arg0) {
- return TestContentFragment.newInstance(list.get(arg0).getContent());
- }
- @Override
- public int getCount() {
- // TODO Auto-generated method stub
- return list.size();
- }
- @Override
- public CharSequence getPageTitle(int position) {
- // TODO Auto-generated method stub
- return list.get(position).getTitle();
- }
- }
然后在首页Fragment 中初始化ViewPager
- package com.example.slidingmenuviewpagertest.fragment;
- import java.util.ArrayList;
- import java.util.List;
- import android.os.Bundle;
- import android.support.v4.app.Fragment;
- import android.support.v4.view.ViewPager;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import com.example.slidingmenuviewpagertest.R;
- import com.example.slidingmenuviewpagertest.adapter.ContentFragmentPagerAdapter;
- import com.example.slidingmenuviewpagertest.entity.ContentBean;
- public class HomeFragment extends Fragment {
- private ViewPager mViewPager;
- private static final String[] titles = {"One","Two","Three","Four","Five"};
- private List list = new ArrayList();
- private ContentFragmentPagerAdapter mAdapter;
- public HomeFragment(){}
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
- View rootView = inflater.inflate(R.layout.fragment_home, container, false);
- initData();
- findView(rootView);
- return rootView;
- }
- private void initData() {
- for(int i=0;i
首页Fragment 布局文件 fragment_home.xml
-
关注打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?
立即登录/注册


微信扫码登录