Fragment加Viewpager的使用小结
来源:互联网 发布:美国读研gpa算法 编辑:程序博客网 时间:2024/06/04 20:06
先把布局放上来比较简单
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@color/backgroup" > <android.support.v4.view.ViewPager android:id="@+id/vPager" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_gravity="center" android:paddingBottom="50dip" android:persistentDrawingCache="animation" /> <ImageView android:layout_width="match_parent" android:layout_height="0.5dp" android:layout_marginTop="-51dp" android:layout_below="@+id/vPager" android:alpha="0.1" android:background="@color/grayl"/> <RadioGroup android:id="@+id/rg_main_btns" android:layout_width="fill_parent" android:layout_height="50dip" android:layout_alignParentBottom="true" android:background="@color/white" android:gravity="center_vertical" android:orientation="horizontal" > <RadioButton android:id="@+id/mainHomeTab" style="@style/radioButtonStyle" android:layout_width="0dp" android:checked="true" android:layout_weight="1" android:layout_height="50dip" android:text="@string/home" android:drawableTop="@drawable/navigation_index" android:textColor="@drawable/navigation_select_text" /> <RadioButton android:id="@+id/mainNewsTab" style="@style/radioButtonStyle" android:layout_width="0dp" android:layout_weight="1" android:layout_height="50dip" android:button="@null" android:textColor="@drawable/navigation_select_text" android:drawableTop="@drawable/navigation_information" android:text="@string/news" /> <RadioButton android:id="@+id/mainVideoTab" style="@style/radioButtonStyle" android:layout_width="0dp" android:layout_weight="1" android:layout_height="50dip" android:textColor="@drawable/navigation_select_text" android:drawableTop="@drawable/navigation_listener" android:text="@string/video" /> <RadioButton android:id="@+id/mainRoomTab" style="@style/radioButtonStyle" android:layout_width="0dp" android:layout_weight="1" android:layout_height="50dip" android:textColor="@drawable/navigation_select_text" android:drawableTop="@drawable/navigation_cloud" android:text="@string/room" /> <RadioButton android:id="@+id/mainPersonTab" style="@style/radioButtonStyle" android:layout_width="0dp" android:layout_weight="1" android:layout_height="50dip" android:textColor="@drawable/navigation_select_text" android:drawableTop="@drawable/navigation_me" android:text="@string/person" /> </RadioGroup></RelativeLayout>
viewpager为内容需要填充的版块,布局的显示是这样的
接下来就是几个子的fragment 布局随便定 重要的是继承fragment,就这重要的就是继承FragmentActivity这个Activity了
下面贴上该Activity的代码!!!
public class MainActivity extends FragmentActivity implements OnPageChangeListener {// 四个滑动页面private ViewPager mViewPager;private FragmentPagerAdapter mAdapter;private List<Fragment> mDatas;private RadioGroup rg_main_btns;private RadioButton mainHomeTab;// 控件private int mScreen1_4;/** 当前视图宽度 **/private Integer viewPagerW = 0;private static int width = 0;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//initLine();initView();initFragment();}/** * 初始化控件 */private void initView() {rg_main_btns=(RadioGroup) findViewById(R.id.rg_main_btns);mainHomeTab=(RadioButton) findViewById(R.id.mainHomeTab);mViewPager = (ViewPager) findViewById(R.id.vPager);mDatas = new ArrayList<Fragment>();rg_main_btns.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(RadioGroup arg0, int checkedId) {// TODO Auto-generated method stubswitch (checkedId) {case R.id.mainHomeTab:mViewPager.setCurrentItem(0);break;case R.id.mainNewsTab:mViewPager.setCurrentItem(1);break;case R.id.mainRoomTab:mViewPager.setCurrentItem(2);break;case R.id.mainVideoTab:mViewPager.setCurrentItem(3);break;case R.id.mainPersonTab:mViewPager.setCurrentItem(4);break;default:break;}}});}/** * 初始化fragment */private void initFragment() {PageFirstActivity mSDF = new PageFirstActivity();PageNewsActivity mCPF = new PageNewsActivity();PageVideoActivity mSSF = new PageVideoActivity();PageRoomActivity mPPF = new PageRoomActivity();MeActivity tt = new MeActivity();mDatas.add(mSDF);mDatas.add(mCPF);mDatas.add(mSSF);mDatas.add(mPPF);mDatas.add(tt);mAdapter = new FragmentPagerAdapter(getSupportFragmentManager()) {@Overridepublic int getCount() {return mDatas == null ? 0 : mDatas.size();}@Overridepublic Fragment getItem(int position) {return mDatas.get(position);}};mViewPager.setAdapter(mAdapter);mViewPager.setCurrentItem(0);}@Overridepublic void onPageScrollStateChanged(int position) {}@Overridepublic void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {}/** * 获取屏幕宽度 * * @param context * @return */public static int getScreenWidth(Context context) {if (width == 0) {WindowManager manager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);Display display = manager.getDefaultDisplay();width = display.getWidth();}return width;}@Overridepublic void onPageSelected(int arg0) {// TODO Auto-generated method stub}}
实现这个效果就是定义一个List<Fragment> 然后向里面加Fragment再填充FragmentPagerAdapter,viewpager setAdpater基本就ok了
通过viewpager的setCurrentItem()选取就ok了
个人小结,有错误请指出谢谢!!!
0 0
- Fragment加Viewpager的使用小结
- 使用viewpager加fragment切换界面
- ViewPager+Fragment的使用
- ViewPager+Fragment的使用
- ViewPager+Fragment的使用
- viewpager加fragment加rb
- ViewPager加fragment如何保存fragment里面的状态
- Android ViewPager中加fragment并保存fragment的状态
- ViewPager和fragment的使用
- ViewPager+Fragment的结合使用
- 2、ViewPager+Fragment的使用
- ViewPager 和Fragment的使用
- ViewPager和Fragment的使用
- Android ViewPager + Fragment的使用
- fragment和viewpager的使用
- Android ViewPager+Fragment的使用
- ViewPager+Fragment的结合使用
- Fragment与ViewPager的使用
- 自动释放池简单原理
- CWHArray模版类
- img标签详解
- Tab选项卡切换
- 设计模式23篇:原型模式
- Fragment加Viewpager的使用小结
- JSP技术概述
- java面向对象中对属性和方法的封装
- Android使用AnysnTask强求数据
- online_judge_1503
- the java_home environment variable is not defined correctly
- 机器学习实战 第三章 决策树 学习笔记
- Android自定义视图二:用Canvas和Paint绘制折线图
- mysql为已经建立的表设置其主键(primary key)