ViewPager+Fragment实现主页面切换

1、先看下效果,ViewPager+Fragment使得页面的切换效果更佳自然,可以加底部tab按钮的单击切换效果,比较实用。
ViewPager+Fragment实现主页面切换_第1张图片

2、实现方法
(1)布局activity_main_viewpager



    

    
        
            
               
            
                
            
            
        
    
    
        

            
            
                
            
            
        

    
    
        

            
            
                
            
            
        
    


(2)布局适配器PagerMainAdapter

public class PagerMainAdapter extends FragmentPagerAdapter {
    private final List frags;

    public PagerMainAdapter(FragmentManager fm, List frags) {
        super(fm);
        this.frags = frags;
    }

    @Override
    public Fragment getItem(int position) {
        return frags.get(position);
    }

    @Override
    public int getCount() {
        return frags.size();
    }
}

(3)页面使用

 /**
     * Created by rjj on 2019/1/10
     */
    public class PagerMainActivity extends BaseActivity implements View.OnClickListener {
    
        @BindView(R.id.main_viewpager_vp)
        ViewPager main_vp;
    
        private List mFragments;
    
        @Override
        protected int getLayoutId() {
            return R.layout.activity_main_viewpager;
        }
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            StatusBarUtil1.setImmersiveStatusBar(this,true);
            StatusBarUtil1.setStatusBarColor(this,       getResources().getColor(R.color.white));
            EventBus.getDefault().register(this);
        }
    
        @Override
        protected void initView() {
            ButterKnife.bind(this);
         
            mFragments=new ArrayList<>();
            mFragments.add(new OAFragment());
            mFragments.add(new HRFragment());
            mFragments.add(new MFragment());
            // 设置填充器
            main_vp.setAdapter(new PagerMainAdapter(getSupportFragmentManager(),mFragments));
            // 设置缓存页面数
            main_vp.setOffscreenPageLimit(3);
            main_vp.setCurrentItem(1);//初始化页面
            //初始化tab样式
            message_iv.setBackgroundResource(R.mipmap.oa_icon_pre);
            
            //滑动方法
            main_vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
                @Override
                public void onPageSelected(int position) {
                    switch (position) {
                        case 0:
                           
                            break;
                        case 1:
                          
                            break;
                        case 2:
                         
                            break;
                    }
                }
                @Override
                public void onPageScrolled(int arg0, float arg1, int arg2) {
                }
                @Override
                public void onPageScrollStateChanged(int arg0) {
                }
            });
        }
   //底部tab的单击方法
        @Override
        public void onClick(View v) {
            switch (v.getId()){
                    case R.id.main_viewpager_message_ll:
                        main_vp.setCurrentItem(0);//显示当前页内容
                        
                        break;
                    case R.id.main_viewpager_hr_ll:
                        main_vp.setCurrentItem(1);
                        
                        break;
                    case R.id.main_viewpager_my_ll:
                        main_vp.setCurrentItem(2);
                      
            }
    
        }
    }

3、其中的fragment页面

public class HRFragment extends BaseFragment {
    @Override
    protected void initView() {

    }

    @Override
    protected int getLayoutId() {
        return R.layout.fragment_e;
    }

}

你可能感兴趣的:(ViewPager+Fragment实现主页面切换)