ViewPager

来源:互联网 发布:heaven ailee 知乎 编辑:程序博客网 时间:2024/04/28 15:37
<?xml version="1.0" encoding="utf-8"?><LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/activity_main"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    tools:context="httpclent.com.example.yuekaotestdemo.MainActivity">    <RadioGroup        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:orientation="horizontal"        android:id="@+id/rg"        >        <RadioButton            android:id="@+id/rb1"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:button="@null"            android:text="本社介绍"            android:layout_weight="1"            android:padding="13dp"            android:gravity="center"            />        <RadioButton            android:id="@+id/rb2"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:button="@null"            android:text="履行职责"            android:layout_weight="1"            android:padding="13dp"            android:gravity="center"            />        <RadioButton            android:id="@+id/rb3"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:button="@null"            android:text="自我建设"            android:layout_weight="1"            android:padding="13dp"            android:gravity="center"            />    </RadioGroup>    <LinearLayout        android:layout_width="match_parent"        android:layout_height="1dp"        android:orientation="horizontal"        android:weightSum="3"        >        <View            android:id="@+id/i"            android:layout_weight="1"            android:layout_width="0dp"            android:layout_height="fill_parent"            android:background="#ff0000"            />    </LinearLayout>    <android.support.v4.view.ViewPager        android:layout_marginTop="5dp"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:id="@+id/vp"        ></android.support.v4.view.ViewPager>    </LinearLayout>








public class MainActivity extends AppCompatActivity implements RadioGroup.OnCheckedChangeListener {    private RadioGroup rg;    private ViewPager vp;    private RadioButton rb1;    private RadioButton rb2;    private RadioButton rb3;    private View view;    private List<Fragment> list;    private MyViewAdapter adapter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        rg = (RadioGroup) findViewById(R.id.rg);        vp = (ViewPager) findViewById(R.id.vp);        rb1 = (RadioButton) findViewById(R.id.rb1);        rb2 = (RadioButton) findViewById(R.id.rb2);        rb3 = (RadioButton) findViewById(R.id.rb3);        view = findViewById(R.id.i);        indata();        vp.setOffscreenPageLimit(3);        adapter = new MyViewAdapter(getSupportFragmentManager());        rg.setOnCheckedChangeListener(this);        vp.setAdapter(adapter);        vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {            @Override            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {                int i = view.getWidth();                if (positionOffsetPixels != 0) {                    view.setX(i * position + positionOffsetPixels / 3);                }            }            @Override            public void onPageSelected(int position) {                switch (position) {                    case 0:                        rb1.setChecked(true);                        break;                    case 1:                        rb2.setChecked(true);                        break;                    case 2:                        rb3.setChecked(true);                        break;                    default:                        break;                }            }            @Override            public void onPageScrollStateChanged(int state) {            }        });    }    private void indata() {        list = Arrays.asList(new Introduce(), new Responsibilit(), new Construction());    }    class MyViewAdapter extends FragmentPagerAdapter {        public MyViewAdapter(FragmentManager fm) {            super(fm);        }        @Override        public Fragment getItem(int position) {            return list.get(position);        }        @Override        public int getCount() {            return list.size();        }    }    @Override    public void onCheckedChanged(RadioGroup radioGroup, int i) {        int num = 0;        switch (i) {            case R.id.rb1:                num = 0;                break;            case R.id.rb2:                num = 1;                break;            case R.id.rb3:                num = 2;                break;            default:                break;        }        if (vp.getCurrentItem() != num) {            vp.setCurrentItem(num);        }    }}

原创粉丝点击