Android中Fragment+Viewpager实现左右滑动和点击

一.布局文件

<?xml version="1.0" encoding="utf-8"?>

<android.support.v4.view.ViewPager
    android:id="@+id/viewpager"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="9" />

<RadioGroup
    android:id="@+id/radiogroup"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="0.8"
    android:orientation="horizontal">

    <RadioButton
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:button="@null"
        android:checked="true"
        android:drawableTop="@drawable/s_see"
        android:gravity="center"
        android:padding="10dp"
        android:text="影片" />

    <RadioButton
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:button="@null"
        android:drawableTop="@drawable/s_message"
        android:gravity="center"
        android:padding="10dp"
        android:text="影院" />

    <RadioButton
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:button="@null"
        android:drawableTop="@drawable/s_start"
        android:gravity="center"
        android:padding="10dp"
        android:text="会员" />

    <RadioButton
        android:id="@+id/button4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:button="@null"
        android:drawableTop="@drawable/s_people"
        android:gravity="center"
        android:padding="10dp"
        android:text="我的" />
</RadioGroup>

二.Java代码

public class MainActivity extends FragmentActivity {

private ViewPager viewPager;
private RadioGroup group;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //找控件
    viewPager = (ViewPager) findViewById(R.id.viewpager);
    group = (RadioGroup) findViewById(R.id.radiogroup);

    //创建fragment集合
    final ArrayList<Fragment> list = new ArrayList<>();
    list.add(new Fragment1());
    list.add(new Fragment2());
    list.add(new Fragment3());
    list.add(new Fragment4());

    //配置适配器
    viewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
        @Override
        public Fragment getItem(int i) {
            return list.get(i);
        }

        @Override
        public int getCount() {
            return list.size();
        }
    });
    //给viewpager设置监听
    viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int i, float v, int i1) {

        }

        @Override
        public void onPageSelected(int i) {
            group.check(group.getChildAt(i).getId());
        }

        @Override
        public void onPageScrollStateChanged(int i) {

        }
    });

    //给radiogroup设置监听
    group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(RadioGroup group, int checkedId) {
            switch (checkedId) {
                case R.id.button1:
                    viewPager.setCurrentItem(0);
                    break;
                case R.id.button2:
                    viewPager.setCurrentItem(1);
                    break;
                case R.id.button3:
                    viewPager.setCurrentItem(2);
                    break;
                case R.id.button4:
                    viewPager.setCurrentItem(3);
                    break;
            }
        }
    });

}

猜你喜欢

转载自blog.csdn.net/wzj_8899174/article/details/83049728