Android-使用fragment+ViewPager完成可左右滑动的页面(微信页面)

第一 在activity_main.xml中布局
上面是一个ViewPager-用来存放我们的fragment
下面是一个底部按钮-按钮的数量要与fragment的数量相对应




    //ViewPager
    

    

    //底部按钮-首页  推荐  我的
    
        
        
        
    
    

第二 在MainActivity.java中写代码
public class MainActivity extends AppCompatActivity {

    private ViewPager pager;
    private RadioGroup radiogroup;
    private ArrayList fragmentlist;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate( savedInstanceState );
        setContentView( R.layout.activity_main );

        //查找控件
        pager = (ViewPager)findViewById( R.id.pager );
        radiogroup = (RadioGroup)findViewById( R.id.radiogroup );
        //第一个按钮默认设置为选中的状态
        radiogroup.check( radiogroup.getChildAt( 0 ).getId() );
        //集合--存放三个fragment
        fragmentlist = new ArrayList<>();
        Fragment1 fragment1 = new Fragment1();
        Fragment2 fragment2 = new Fragment2();
        Fragment3 fragment3 = new Fragment3();
        fragmentlist.add( fragment1 );
        fragmentlist.add( fragment2 );
        fragmentlist.add( fragment3 );
        //给pager设置适配器
        FragmentPagerAdapter pagerAdapter1 = new FragmentPagerAdapter( getSupportFragmentManager() ) {
            @Override
            public int getCount() {
                return fragmentlist.size();
            }

            @Override
            public Fragment getItem(int i) {
                return fragmentlist.get( i );
            }
        };
        pager.setAdapter( pagerAdapter1 );

        //点击按钮切换页面
        radiogroup.setOnCheckedChangeListener( new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                switch (checkedId){
                    case R.id.radio1:
                        pager.setCurrentItem( 0 );
                        break;
                    case R.id.radio2:
                        pager.setCurrentItem( 1 );
                        break;
                    case R.id.radio3:
                        pager.setCurrentItem( 2 );
                        break;
                }
            }
        } );//点击按钮切换页面

        //左右滑动页面按钮实现联动
        pager.addOnPageChangeListener( new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int i, float v, int i1) {

            }

            @Override
            public void onPageSelected(int i) {
                //对应的按钮默认设置为选中的状态
                radiogroup.check( radiogroup.getChildAt( i ).getId() );
            }

            @Override
            public void onPageScrollStateChanged(int i) {

            }
        } );//左右滑动页面按钮实现联动
    }

}

你可能感兴趣的:(Android-使用fragment+ViewPager完成可左右滑动的页面(微信页面))