FragmentPagerAdapter——滑动添加Fragment
来源:互联网 发布:阿里云maven配置文件 编辑:程序博客网 时间:2024/04/28 15:39
FragmentPagerAdapter是PagerAdapter中的其中一种实现。它将每一个页面表示为一个 Fragment,并且每一个Fragment都将会保存到fragment manager当中。当页面数量比较大的时候,建议使用FragmentStatePagerAdapter。
当使用FragmentPagerAdapter的时候,ViewPager一定要使用正确的ID set。
FragmentPagerAdapter的子类只要实现 getItem(int) 和 getCount()方法
在XML中定义布局,在底部定义一个RadioGroup,添加三个RadioButton。添加一个ViewPager布局。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity"> <LinearLayout android:id="@+id/linearlayout" android:layout_width="match_parent" android:layout_height="60dp" android:orientation="horizontal" android:layout_alignParentTop="true" android:background="#17B4EB"> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="30dp" android:background="#cfcfcf" android:layout_marginTop="15dp"> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:background="@mipmap/text" android:gravity="center" android:hint="搜索"/> </LinearLayout> <android.support.v4.view.ViewPager class="com.example.administrator.myfragment.fragment.MyFirstFragment" android:id="@+id/fragment_viewpager" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1"></android.support.v4.view.ViewPager> <RadioGroup android:id="@+id/fragment_radiogroup" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:gravity="center" android:orientation="horizontal"> <RadioButton android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:drawableTop="@drawable/contact" style="@style/fragment"/> <RadioButton android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:drawableTop="@drawable/conversation" style="@style/fragment" /> <RadioButton android:id="@+id/button3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:drawableTop="@drawable/plugin" style="@style/fragment"/> </RadioGroup></LinearLayout>
定义一个Adapter类,继承自FragmentPagerAdapter,重写两个方法
package com.example.administrator.myfragment.adapter;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentPagerAdapter;import java.util.List;/** * Created by Administrator on 2015/9/7. */public class MyFragmentAdapter extends FragmentPagerAdapter { private List<Fragment>mFragments; public MyFragmentAdapter(FragmentManager fm,List<Fragment> mFragments) { super(fm); this.mFragments=mFragments; } @Override public Fragment getItem(int position) { return mFragments.get(position); } @Override public int getCount() { return mFragments.size(); }}
在MainActivity中完善代码,主要是将适配器添加到ViewPager中
package com.example.administrator.myfragment;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentActivity;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentTransaction;import android.support.v4.view.ViewPager;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.ViewGroup;import android.widget.Button;import android.widget.FrameLayout;import android.widget.LinearLayout;import android.widget.RadioGroup;import com.example.administrator.myfragment.adapter.MyFragmentAdapter;import com.example.administrator.myfragment.fragment.MyFirstFragment;import com.example.administrator.myfragment.fragment.MySecondFragment;import com.example.administrator.myfragment.fragment.MyThirdFragment;import java.util.ArrayList;import java.util.List;public class MainActivity extends FragmentActivity { private MyFirstFragment mMyFirstFragment; private MySecondFragment mMySecondFragment; private MyThirdFragment mMyThirdFragment; private FragmentManager mFragmentManager; private FragmentTransaction mFragmentTransaction; private List<Fragment>mFragments; private ViewPager mViewPager; private RadioGroup mRadioGroup; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mViewPager= (ViewPager) findViewById(R.id.fragment_viewpager); mRadioGroup= (RadioGroup) findViewById(R.id.fragment_radiogroup); mFragmentManager=getSupportFragmentManager(); mFragments=new ArrayList<>(); mMyFirstFragment=new MyFirstFragment(); mMySecondFragment=new MySecondFragment(); mMyThirdFragment =new MyThirdFragment(); mFragments.add(mMyFirstFragment); mFragments.add(mMySecondFragment); mFragments.add(mMyThirdFragment); mFragmentTransaction=mFragmentManager.beginTransaction(); MyFragmentAdapter mAdapter=new MyFragmentAdapter(mFragmentManager,mFragments); mViewPager.setAdapter(mAdapter); mRadioGroup.check(R.id.button1); mRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { switch (checkedId){ case R.id.button1: mViewPager.setCurrentItem(0); break; case R.id.button2: mViewPager.setCurrentItem(1); break; case R.id.button3: mViewPager.setCurrentItem(2); break; default: break; } } }); mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { switch (position){ case 0: mRadioGroup.check(R.id.button1); break; case 1: mRadioGroup.check(R.id.button2); break; case 2: mRadioGroup.check(R.id.button3); break; default: break; } } @Override public void onPageScrollStateChanged(int state) { } }); }}
这里添加点击事件主要是在点击下边的Button和滑动屏幕的时候保持一致性。
0 0
- FragmentPagerAdapter——滑动添加Fragment
- FragmentPagerAdapter——ViewPager中添加fragment
- Android ViewPager RadioButton Fragment FragmentPagerAdapter Tab页滑动
- Fragment系列—Activity中添加fragment
- Android应用开发—ViewPager FragmentPagerAdapter和FragmentStatePagerAdapter下Fragment的生命周期
- FragmentPagerAdapter页面滑动
- viewPager+fragment fragmentPagerAdapter
- Android:Fragment+ViewPager+FragmentPagerAdapter
- FragmentPagerAdapter刷新fragment
- ViewPager+FragmentPagerAdapter+Fragment
- 利用ViewPager+FragmentPagerAdapter+Fragment做一个能左右滑动的页面
- 滑动换屏——fragment
- 滑动关闭Fragment——SwipeBackFragment
- 在fragment里添加横向滑动
- 某宅的Android学习笔记(三)——用ViewPager与FragmentPagerAdapter实现可以滑动的Tab
- ViewPager视图滑动工具+FragmentPagerAdapter
- 获取FragmentPagerAdapter的当前fragment
- Fragment与Viewpager及FragmentPagerAdapter
- 删除了/lib64下的动态链接文件
- iOS开发-项目的完整重命名方法,图文教程
- 1101 Oh, my God!【错排】
- POJ1265Area【pick公式+多边形求面积+点在线段上判断】
- 笔记:popupwindow使用
- FragmentPagerAdapter——滑动添加Fragment
- cocos2d-x 之quick-ini
- eclipse中文件无法打开或者报错的解决方式
- 基于全志20平板方案(一)
- spring中获取request对象
- python 实现文件打开读取内容然后写入更新内容(文件只打开一次)
- 一些windows的系统命令 .
- EMF代码生成
- Python中文分词组件 jieba