1
ViewPager+Button 实现左右滑动和点击切换按钮
布局
一个viewpager 和 3个按钮
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v4.view.ViewPager
android:id="@+id/vp"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
>
</android.support.v4.view.ViewPager>
<RadioGroup
android:id="@+id/rg"
android:layout_width="match_parent"
android:layout_height="50dp"
android:gravity="center"
android:orientation="horizontal"
>
<Button
android:id="@+id/bt1"
android:layout_weight="1"
android:text="按钮1"
android:background="@drawable/selector_text_btn"
android:layout_width="wrap_content"
android:layout_height="match_parent" />
<Button
android:id="@+id/bt2"
android:layout_weight="1"
android:background="@drawable/selector_text_btn"
android:text="按钮2"
android:layout_width="wrap_content"
android:layout_height="match_parent" />
<Button
android:id="@+id/bt3"
android:layout_weight="1"
android:background="@drawable/selector_text_btn"
android:text="按钮3"
android:layout_width="wrap_content"
android:layout_height="match_parent" />
</RadioGroup>
</LinearLayout>
java代码
private ViewPager vp;
private RadioGroup rg;
private Button bt1, bt2, bt3;
List<Fragment> fragments = new ArrayList<>();
vp = (ViewPager) findViewById(R.id.vp);
rg = (RadioGroup) findViewById(R.id.rg);
bt1 = (Button) findViewById(R.id.bt1);
bt2 = (Button) findViewById(R.id.bt2);
bt3 = (Button) findViewById(R.id.bt3);
fragments.add(new zhujiemianFragment1());
fragments.add(new zhujiemianFragment2());
fragments.add(new zhujiemianFragment3());
vp.setOffscreenPageLimit(3);
vp.setAdapter(new MyPagerAdapter3(getSupportFragmentManager()));
setListener();
适配器:
class MyPagerAdapter3 extends FragmentPagerAdapter {
public MyPagerAdapter3(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int i) {
return fragments.get(i);
}
@Override
public int getCount() {
return fragments.size();
}
}
监听
private void setListener() {
//按钮点击
bt1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
vp.setCurrentItem(0);
}
});
bt2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
vp.setCurrentItem(1);
}
});
bt3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
vp.setCurrentItem(2);
}
});
左右滑动
vp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int i, float v, int i1) {
}
@Override
public void onPageSelected(int i) {
switch (i) {
case 0:
rg.check(R.id.bt1);
break;
case 1:
rg.check(R.id.bt2);
break;
case 2:
rg.check(R.id.bt3);
break;
}
}
@Override
public void onPageScrollStateChanged(int i) {
}
});
}