Android Viewpager+RadioGroupで左右クリックスライド効果を実現

6321 ワード

Activity android:id="@+id/main_viewp"android:layout_weight=“9” android:layout_width=“match_parent” android:layout_height=“0dp”>




    
    
    
    
    



FragmentPagerAdapter package comを継承します.bawei.zhaojianfu2019813.view.adapter;
import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter;
import java.util.List;
public class FragmentAdapter extends FragmentPagerAdapter { private List list;
public FragmentAdapter(FragmentManager fm, List list) {
    super(fm);
    this.list = list;
}

@Override
public Fragment getItem(int i) {
    return list.get(i);
}

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

}
Activity package com.bawei.zhaojianfu2019813.view.activity;
import android.support.v4.app.Fragment; import android.support.v4.view.ViewPager; import android.widget.Button; import android.widget.RadioButton; import android.widget.RadioGroup;
import com.bawei.zhaojianfu2019813.R; import com.bawei.zhaojianfu2019813.view.adapter.FragmentAdapter; import com.bawei.zhaojianfu2019813.view.fragment.FragmentFive; import com.bawei.zhaojianfu2019813.view.fragment.FragmentFour; import com.bawei.zhaojianfu2019813.view.fragment.FragmentOne; import com.bawei.zhaojianfu2019813.view.fragment.FragmentThree; import com.bawei.zhaojianfu2019813.view.fragment.FragmentTwo;
import java.util.ArrayList; import java.util.List;
public class MainActivity extends BasActivity {
private ViewPager main_viewp;
private RadioGroup main_radiog;
private List list;
private RadioButton main_but1;
private RadioButton main_but2;
private RadioButton main_but3;
private RadioButton main_but4;
private RadioButton main_but5;

@Override
protected void initdata() {

}

@Override
protected void initview() {
    main_viewp = findViewById(R.id.main_viewp);
    main_radiog = findViewById(R.id.main_radiog);

    main_but1 = findViewById(R.id.main_but1);
    main_but2 = findViewById(R.id.main_but2);
    main_but3 = findViewById(R.id.main_but3);
    main_but4 = findViewById(R.id.main_but4);
    main_but5 = findViewById(R.id.main_but5);
    list = new ArrayList<>();
    list.add(new FragmentOne());
    list.add(new FragmentTwo());
    list.add(new FragmentThree());
    list.add(new FragmentFour());
    list.add(new FragmentFive());

    //     
    FragmentAdapter fragmentAdapter = new FragmentAdapter(getSupportFragmentManager(),list);
    main_viewp.setAdapter(fragmentAdapter);

    main_viewp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int i, float v, int i1) {

        }

        @Override
        public void onPageSelected(int i) {
                    switch (i){
                        case 0:
                            main_radiog.check(R.id.main_but1);
                            break;
                        case 1:
                            main_radiog.check(R.id.main_but2);
                            break;
                        case 2:
                            main_radiog.check(R.id.main_but3);
                            break;
                        case 3:
                            main_radiog.check(R.id.main_but4);
                            break;
                        case 4:
                            main_radiog.check(R.id.main_but5);
                            break;
                    }
        }

        @Override
        public void onPageScrollStateChanged(int i) {

        }
    });

    main_radiog.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(RadioGroup group, int checkedId) {
            switch (checkedId){
                case R.id.main_but1:
                    main_viewp.setCurrentItem(0);
                    break;
                case R.id.main_but2:
                    main_viewp.setCurrentItem(1);
                    break;
                case R.id.main_but3:
                    main_viewp.setCurrentItem(2);
                    break;
                case R.id.main_but4:
                    main_viewp.setCurrentItem(3);
                    break;
                case R.id.main_but5:
                    main_viewp.setCurrentItem(4);
                    break;
            }
        }
    });
}

@Override
protected int bas() {
    return R.layout.activity_main;
}

}