您当前的位置: 首页 > 

xiangzhihong8

暂无认证

  • 5浏览

    0关注

    1324博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

slidingmenu开源效果

xiangzhihong8 发布时间:2014-02-19 22:50:31 ,浏览量:5

本文将更进一步, 在很多实际的应用场景中我们需要一个更复杂的场景,比如说需要在一个菜单选项中集成多个tab来集中显示信息。这个时候 Viewpager就派上用场了。

本例中我们将通过SlidingMenu + ViewPager+Fragment 实现带TAB的SlidingMenu。先看看具体的效果。

实现步骤跟上一篇大体相同,这里着重说需要修改的地方

首先我们需要添加一个PagerAdapter来自动适配Tab里面的Fragment ,就像ListView中的BaseAdapter差不多,只是需要实现的方法有一些区别。

[java] view plain copy 在CODE上查看代码片 派生到我的代码片
  1. package com.example.slidingmenuviewpagertest.adapter;  
  2.   
  3. import java.util.List;  
  4.   
  5. import com.example.slidingmenuviewpagertest.entity.ContentBean;  
  6. import com.example.slidingmenuviewpagertest.fragment.TestContentFragment;  
  7.   
  8. import android.support.v4.app.Fragment;  
  9. import android.support.v4.app.FragmentManager;  
  10. import android.support.v4.app.FragmentPagerAdapter;  
  11.   
  12. public class ContentFragmentPagerAdapter extends FragmentPagerAdapter {  
  13.   
  14.     private List list;  
  15.     public ContentFragmentPagerAdapter(FragmentManager fm) {  
  16.         super(fm);  
  17.     }  
  18.       
  19.     public ContentFragmentPagerAdapter(FragmentManager fm,List list) {  
  20.         super(fm);  
  21.         this.list = list;  
  22.     }  
  23.   
  24.     @Override  
  25.     public Fragment getItem(int arg0) {  
  26.           
  27.         return TestContentFragment.newInstance(list.get(arg0).getContent());  
  28.           
  29.     }  
  30.   
  31.     @Override  
  32.     public int getCount() {  
  33.         // TODO Auto-generated method stub  
  34.         return list.size();  
  35.     }  
  36.       
  37.     @Override  
  38.     public CharSequence getPageTitle(int position) {  
  39.         // TODO Auto-generated method stub  
  40.         return list.get(position).getTitle();  
  41.     }  
  42.   
  43. }  

然后在首页Fragment 中初始化ViewPager

[java] view plain copy 在CODE上查看代码片 派生到我的代码片
  1. package com.example.slidingmenuviewpagertest.fragment;  
  2.   
  3. import java.util.ArrayList;  
  4. import java.util.List;  
  5.   
  6. import android.os.Bundle;  
  7. import android.support.v4.app.Fragment;  
  8. import android.support.v4.view.ViewPager;  
  9. import android.view.LayoutInflater;  
  10. import android.view.View;  
  11. import android.view.ViewGroup;  
  12.   
  13. import com.example.slidingmenuviewpagertest.R;  
  14. import com.example.slidingmenuviewpagertest.adapter.ContentFragmentPagerAdapter;  
  15. import com.example.slidingmenuviewpagertest.entity.ContentBean;  
  16.   
  17. public class HomeFragment extends Fragment {  
  18.       
  19.     private ViewPager mViewPager;  
  20.     private static final String[] titles = {"One","Two","Three","Four","Five"};  
  21.     private List list = new ArrayList();  
  22.     private ContentFragmentPagerAdapter mAdapter;  
  23.       
  24.     public HomeFragment(){}  
  25.       
  26.     @Override  
  27.     public View onCreateView(LayoutInflater inflater, ViewGroup container,  
  28.             Bundle savedInstanceState) {  
  29.    
  30.         View rootView = inflater.inflate(R.layout.fragment_home, container, false);  
  31.           
  32.         initData();  
  33.         findView(rootView);  
  34.           
  35.         return rootView;  
  36.     }  
  37.   
  38.     private void initData() {  
  39.           
  40.         for(int i=0;i  
  41.   
  42.   
  43.       
  44.   
  45.       
  46.   
  47.   

首页Fragment 布局文件 fragment_home.xml

[html] view plain copy 在CODE上查看代码片 派生到我的代码片
  1.   
  2.   
  3.   
  4.       
  5.           
  6.               
  7.           
关注
打赏
1482932726
查看更多评论
立即登录/注册

微信扫码登录

0.2075s