本文主要是介绍使用 RadioGroup和viewPager实现可滑动的tab,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
使用 RadioGroup和viewPager实现可滑动的tab,使用FragmentListAdapter,不用自定义viewPagerAdapter:
private List<Fragment> list;private ViewPager viewPager;private FragmentListAdapter adater;RadioGroup rg_main_btHead;viewPager = (ViewPager) findViewById(R.id.viewPager);rg_main_btHead = (RadioGroup) findViewById(R.id.rg_main_btHead);initList();viewPager.setAdapter(adater);viewPager.setOnPageChangeListener(new OnPageChangeListener() {@Overridepublic void onPageSelected(int arg0) {// TODO Auto-generated method stubRadioButton rBtn = (RadioButton) rg_main_btHead.getChildAt(arg0);rBtn.setChecked(true);}@Overridepublic void onPageScrolled(int arg0, float arg1, int arg2) {// TODO Auto-generated method stub}@Overridepublic void onPageScrollStateChanged(int arg0) {// TODO Auto-generated method stub}});rg_main_btHead.setOnCheckedChangeListener(new OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(RadioGroup group, int checkedId) {if (checkedId == R.id.rb_customer_info) {viewPager.setCurrentItem(0);} else {viewPager.setCurrentItem(1);}}});// 为了实现添加用户操作后跳转到相应的页viewPager.setCurrentItem(if_broker);}public void initList() {list = new ArrayList<Fragment>();list.add(new CustomerFragment());list.add(new BrokerFragment());adater = new FragmentListAdapter(getSupportFragmentManager(), list);}
用到的xml文件:
activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:background="@color/white"android:orientation="vertical" ><RadioGroup
android:id="@+id/rg_main_btHead"android:layout_width="match_parent"android:layout_height="@dimen/button_mid"android:orientation="horizontal" ><RadioButton
android:id="@+id/rb_customer_info"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:background="@drawable/main_head_list"android:button="@null"android:checked="true"android:gravity="center"android:text="@string/customer_info"android:textColor="@drawable/main_head_color_list" /><RadioButton
android:id="@+id/rb_broker_info"android:layout_width="0dp"android:layout_height="match_parent"android:layout_marginLeft="20dp"android:layout_weight="1"android:background="@drawable/main_head_list"android:button="@null"android:checked="false"android:gravity="center"android:text="@string/broker_info"android:textColor="@drawable/main_head_color_list" /></RadioGroup><android.support.v4.view.ViewPager
android:id="@+id/viewPager"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1" ></android.support.v4.view.ViewPager></LinearLayout>
tab被选中时的下划线及字体颜色变换:
main_head_list.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:drawable="@drawable/buttonbg" android:state_checked="true"/></selector>
main_head_color_list.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:state_checked="true" android:color="@color/app_bg"></item><item android:state_checked="false" android:color="@color/gray_text"></item></selector>
这篇关于使用 RadioGroup和viewPager实现可滑动的tab的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!