Fragment / ViewPager滑动

首先布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

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

    <RadioGroup
        android:id="@+id/radioG"
        android:layout_width="match_parent"
        android:orientation="horizontal"
        android:layout_height="wrap_content">
        <RadioButton
            android:id="@+id/rb1"
            android:button="@null"
            android:drawableTop="@drawable/sel"
            android:layout_width="0dp"
            android:checked="true"
            android:gravity="center"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="111"/>
        <RadioButton
            android:id="@+id/rb2"
            android:button="@null"
            android:gravity="center"
            android:drawableTop="@drawable/sel"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="222"/>
        <RadioButton
            android:id="@+id/rb3"
            android:button="@null"
            android:drawableTop="@drawable/sel"
            android:layout_width="0dp"
            android:gravity="center"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="333"/>
    </RadioGroup>

</LinearLayout>
package com.example.day4_2;

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.RadioGroup;

import com.example.day4_2.frag.Frag01;
import com.example.day4_2.frag.Frag02;
import com.example.day4_2.frag.Frag03;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

    private ViewPager pager;
    private RadioGroup radioGroup;
    private ArrayList<Fragment> list;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        pager=findViewById(R.id.vp);
        radioGroup=findViewById(R.id.radioG);
          //页面数据
        list=new ArrayList<>();
        list.add(new Frag01());
        list.add(new Frag02());
        list.add(new Frag03());
         //view pager 适配器
        pager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
            @Override
            public Fragment getItem(int i) {
                return list.get(i);
            }

            @Override
            public int getCount() {
                return list.size();
            }
        });
         ///滑动的时候切换按钮选中状态
        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) {

            }
        });
            //点击按钮切换
        radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                switch (checkedId){
                    case R.id.rb1:
                        pager.setCurrentItem(0);
                        break;
                    case R.id.rb2:
                        pager.setCurrentItem(1);
                        break;
                    case R.id.rb3:
                        pager.setCurrentItem(2);
                        break;
                }
            }
        });
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_44668058/article/details/87705254
今日推荐