Android可滑动的Tab页
16lz
2021-12-04
RadioGroup+ViewPager+Fragment实现的可滑动的Tab页,非常的灵活。
最终效果图
demo下载:http://download.csdn.net/download/shenyuanqing/9064189
部分源码
MainActivity
package com.example.shen.tabtest.activity;import android.os.Bundle;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentActivity;import android.support.v4.view.ViewPager;import android.widget.RadioButton;import android.widget.RadioGroup;import com.example.shen.tabtest.R;import com.example.shen.tabtest.adapter.myFragmentPagerAdapter;import com.example.shen.tabtest.fragment.EvaluationFragment;import com.example.shen.tabtest.fragment.MerchantFragment;import com.example.shen.tabtest.fragment.OrderFragment;import java.util.ArrayList;public class MainActivity extends FragmentActivity implements RadioGroup.OnCheckedChangeListener{ private ViewPager viewPager; private RadioGroup radioGroup; private RadioButton rbOrder,rbEvaluation,rbMerchant; private ArrayList alFragment; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //初始化界面组件 initView(); //初始化ViewPager initViewPager(); } private void initView(){ viewPager=(ViewPager) findViewById(R.id.viewpager); radioGroup=(RadioGroup) findViewById(R.id.radiogroup); rbOrder=(RadioButton) findViewById(R.id.rb_order); rbEvaluation=(RadioButton) findViewById(R.id.rb_evaluation); rbMerchant=(RadioButton) findViewById(R.id.rb_merchant); radioGroup.setOnCheckedChangeListener(this); } private void initViewPager(){ OrderFragment orderFragment=new OrderFragment(); EvaluationFragment evaluationFragment=new EvaluationFragment(); MerchantFragment merchantFragment=new MerchantFragment(); alFragment=new ArrayList<>(); alFragment.add(orderFragment); alFragment.add(evaluationFragment); alFragment.add(merchantFragment); //ViewPager设置适配器 viewPager.setAdapter(new myFragmentPagerAdapter(getSupportFragmentManager(), alFragment)); //ViewPager显示第一个Fragment viewPager.setCurrentItem(0); //ViewPager页面切换监听 viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } //滑动ViewPager,RadioButton选中状态做相应变换 @Override public void onPageSelected(int position) { switch (position){ case 0: radioGroup.check(R.id.rb_order); break; case 1: radioGroup.check(R.id.rb_evaluation); break; case 2: radioGroup.check(R.id.rb_merchant); break; } } @Override public void onPageScrollStateChanged(int state) { } }); } /** * 点击RadioButton切换ViewPager中相应的Fragment * @param group * @param checkedId */ @Override public void onCheckedChanged(RadioGroup group, int checkedId) { switch (checkedId){ case R.id.rb_order: viewPager.setCurrentItem(0,false); break; case R.id.rb_evaluation: viewPager.setCurrentItem(1,false); break; case R.id.rb_merchant: viewPager.setCurrentItem(2,false); break; } }}
activity_main.xml
myFragmentPagerAdapter package com.example.shen.tabtest.adapter;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentPagerAdapter;import java.util.ArrayList;/** * Created by Administrator on 2015/6/24. */public class myFragmentPagerAdapter extends FragmentPagerAdapter { private ArrayList list; public myFragmentPagerAdapter(FragmentManager fm, ArrayList list){ super(fm); this.list=list; } @Override public Fragment getItem(int position) { return list.get(position); } @Override public int getCount() { return list.size(); }}
style_radiobutton
更多相关文章
- 【阿里云镜像】切换阿里巴巴开源镜像站镜像——Fedora镜像
- 【阿里云镜像】切换阿里巴巴开源镜像站镜像——Debian镜像
- 【Android】Android(安卓)彩信发送的两种方式+源代码
- 横竖屏切换时不销毁当前activity 和 锁定屏幕
- 修改android默认时区语言
- android material design 军火库 控件
- 有米平台 发布android软件教程
- android webview 面试
- 横竖屏切换时不销毁当前activity 和 锁定屏幕