//布局
<android.support.v4.view.ViewPager
android:id="@+id/vp"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="9" />
<RadioGroup
android:layout_width="match_parent"
android:layout_height="0dp"
android:id="@+id/rg"
android:layout_weight="1"
android:orientation="horizontal">
<RadioButton
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="@+id/rb1"
android:layout_weight="1"
android:text="一"
android:checked="true"
android:textColor="@drawable/select"
android:button="@null"
android:gravity="center"
android:layout_margin="5dp"
android:padding="5dp"/>
<RadioButton
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="@+id/rb2"
android:layout_weight="1"
android:text="二"
android:textColor="@drawable/select"
android:button="@null"
android:gravity="center"
android:layout_margin="5dp"
android:padding="10dp"/>
<RadioButton
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="@+id/rb3"
android:layout_weight="1"
android:text="三"
android:textColor="@drawable/select"
android:button="@null"
android:gravity="center"
android:layout_margin="5dp"
android:padding="5dp"/>
<RadioButton
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="@+id/rb4"
android:layout_weight="1"
android:text="四"
android:textColor="@drawable/select"
android:button="@null"
android:gravity="center"
android:layout_margin="5dp"
android:padding="5dp"/>
</RadioGroup>
/**
* 按钮设置
* 在drawable中 创建 select
**/
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:color="@color/colorAccent"/>
<item android:state_checked="false" android:color="@color/colorPrimary"/>
//<item android:state_checked="true"android:drawable="@color/colorAccent"/>
//<item android:state_checked="false" android:drawable="@color/colorPrimary"/>
</selector>
private ViewPager vp;
private RadioGroup rg;
private ArrayList<Fragment> fragments;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
vp = findViewById(R.id.vp);
rg = findViewById(R.id.rg);
fragments = new ArrayList<>();
Fragment1 f1 = new Fragment1();
Fragment2 f2 = new Fragment2();
Fragment3 f3 = new Fragment3();
Fragment4 f4 = new Fragment4();
fragments.add(f1);
fragments.add(f2);
fragments.add(f3);
fragments.add(f4);
vp.setAdapter(new MyFragmentAdapter(fragments,getSupportFragmentManager()));
rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int i) {
switch (i){
case R.id.rb1:
vp.setCurrentItem(0,false);
break;
case R.id.rb2:
vp.setCurrentItem(1,false);
break;
case R.id.rb3:
vp.setCurrentItem(2,false);
break;
case R.id.rb4:
vp.setCurrentItem(3,false);
break;
default:
break;
}
}
});
vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
rg.check(rg.getChildAt(position).getId());
}
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { }
@Override
public void onPageScrollStateChanged(int state) { }
});
}
//适配器
class MyFragmentAdapter extends FragmentPagerAdapter {
private List<Fragment> list;
private FragmentManager manager;
public MyFragmentAdapter(List<Fragment> list, FragmentManager manager) {
super(manager);
this.list = list;
this.manager = manager;
}
@Override
public Fragment getItem(int position) {
return list.get(position);
}
@Override
public int getCount() {
return list.size();
}
}
//fragment关联
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class Fragment1 extends Fragment{
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment1, container, false);
return view;
}
}