使用 RadioGroup和viewPager实现可滑动的tab
2015-07-29 17:34
351 查看
使用 RadioGroup和viewPager实现可滑动的tab,使用FragmentListAdapter,不用自定义viewPagerAdapter:
用到的xml文件:
activity_main.xml:
tab被选中时的下划线及字体颜色变换:
main_head_list.xml:
main_head_color_list.xml:
ae69
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() { @Override public void onPageSelected(int arg0) { // TODO Auto-generated method stub RadioButton rBtn = (RadioButton) rg_main_btHead .getChildAt(arg0); rBtn.setChecked(true); } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { // TODO Auto-generated method stub } @Override public void onPageScrollStateChanged(int arg0) { // TODO Auto-generated method stub } }); rg_main_btHead .setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public 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>
ae69
相关文章推荐
- python观察者模式
- 二分查找的非递归与递归实现
- 【CSS学习】CSS 创建
- Linux Shell 脚本入门
- java字符编码转换研究
- VB中WinSock控件的属性、方法、事件及应用
- Android程序中如何启动浏览器
- twisted.internet.endpoints的使用
- hdoj 1272 小希的迷宫
- 文章标题
- Perface
- ruby 遍历mongo数据
- 参考书籍
- ubuntu14.04 64位兼容32位方法
- Android 5.0水波纹效果
- VS2008 LINK : fatal error LNK1000: Internal error during IncrBuildImage
- 杭电 1232 畅通工程 并查集
- unable to read project file....不能读取项目文件的解决方法
- JS设置cookie
- 常用正则表达式