全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Android Fragment滑动组件ViewPager的实例详解

Android Fragment滑动组件ViewPager的实例详解

1适配器FragmentPagerAdapter的实现

对于FragmentPagerAdapter的派生类,只需要重写getItem(int)和getCount()就可以了。

public class MyFragmentPagerAdapter extends FragmentPagerAdapter {
  private List<Fragment> list; 
  public MyFragmentPagerAdapter(FragmentManager fm, List<Fragment> list) { 
    super(fm); 
    this.list = list;
  }
  //返回了当前要滑动的View的个数 
  @Override 
  public int getCount() { 
    return list.size(); 
  } 
  //在getItem(int arg0)中,根据传来的参数arg0,来返回当前要显示的fragment
  @Override 
  public Fragment getItem(int arg0) { 
    return list.get(arg0); 
  }
}

2两个Fragment类

OrderFragment.java

public class OrderFragment extends Fragment {
  //在onCreateView()中返回要显示的View
  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container,
      Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    View view= inflater.inflate(R.layout.fragment_order, container, false);
    //View中控件的操作方法
    refresh = view.findViewById(R.id.order_count_refresh);
    refresh.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        //操作逻辑
        countStatus();
      }
    });
    return view;
  }
}

fragment_order.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:background="#ffffff"
  android:orientation="vertical" >

  <Button android:id="@+id/fragment1_btn"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="show toast"
    />
</LinearLayout>

MeFragment.java

public class MeFragment extends Fragment {
  //在onCreateView()中返回要显示的View
  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container,
      Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    View view= inflater.inflate(R.layout.fragment_me, container, false);
    //View中控件的操作方法
    login = view.findViewById(R.id.me_login);
    login.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        startActivity(new Intent(MeFragment.this.getActivity(),
            LoginActivity.class));
      }
    });
    return view;
  }
}

fragment_me.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:background="#ffff00"
  android:orientation="vertical" >


</LinearLayout>

3主activity实现

public class MainActivity extends FragmentActivity {
  private ViewPager mPager;
  private List<Fragment> fragmentList;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mPager = (ViewPager) findViewById(R.id.viewpager);
    //初始化fragment
    List<Fragment> fragmentList=new ArrayList<Fragment>();
    fragmentList.add(new OrderFragment());
    fragmentList.add(new MeFragment());
    FragAdapter adapter = new FragAdapter(getSupportFragmentManager(), fragments);

    //给ViewPager设置适配器
    mPager.setAdapter(new MyFragmentPagerAdapter(getSupportFragmentManager(), fragmentList));
    mPager.setCurrentItem(0);// 设置当前显示标签页为第一页
    //MyOnPageChangeListener()是页面变化监听器
    mPager.setOnPageChangeListener(new MyOnPageChangeListener());
    radioGroup = (RadioGroup) findViewById(R.id.main_tab);
    //给radioGroup设置监听器
    radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
      @Override
      public void onCheckedChanged(RadioGroup group, int checkedId) {
        if(checkedId == R.id.tab_me){
          mPager.setCurrentItem(INDEX_ME);
        }else if(checkedId == R.id.tab_shoujian){
          mPager.setCurrentItem(INDEX_SHOUJIAN);
        }
      }
    });
  }
  //实现页面变化监听器OnPageChangeListener
  public class MyOnPageChangeListener implements OnPageChangeListener {
    @Override
    //当页面在滑动的时候会调用此方法,在滑动被停止之前,此方法会一直得到调用。
    /** 
      * arg0:当前页面,及你点击滑动的页面
      * arg1:当前页面偏移的百分比
      *arg2:当前页面偏移的像素位置
      */
    public void onPageScrolled(int arg0, float arg1, int arg2) {
      // TODO Auto-generated method stub
    }

    @Override 
    //当页面状态改变的时候调用
     /** 
      * arg0 
      * 1:表示正在滑动 
      * 2:表示滑动完毕 
      * 0:表示什么都没做,就是停在那 
      */ 
    public void onPageScrollStateChanged(int arg0) {
      // TODO Auto-generated method stub
    }

    @Override
    //页面跳转完后调用此方法
    /** 
     * arg0是页面跳转完后得到的页面的Position(位置编号)。  
     */ 
    public void onPageSelected(int arg0) {
      // TODO Auto-generated method stub
      switch (arg0) {
      case INDEX_ME:
        radioGroup.check(R.id.tab_me);
        break;
      case INDEX_SHOUJIAN:
        radioGroup.check(R.id.tab_shoujian);
        break;
      }
    }
  }

}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?> 
 <RelativeLayout 
  android:layout_width="fill_parent" 
  android:layout_height="fill_parent" 
  android:orientation="vertical"
  xmlns:android="http://schemas.android.com/apk/res/android"> 

 <android.support.v4.view.ViewPager 
    android:id="@+id/viewpager"
    android:layout_alignParentTop="true"
    android:layout_width="fill_parent" 
    android:layout_height="match_parent"
    android:layout_gravity="center"
    android:layout_marginBottom="60dip"
    android:flipInterval="30" 
    android:persistentDrawingCache="animation"/> 

  <RadioGroup 
    android:id="@+id/main_tab" 
    android:orientation="horizontal" 
    android:layout_width="fill_parent"
    android:layout_alignParentBottom="true"
    android:layout_height="60dip"> 

    <RadioButton
      style="@style/main_tab"
      android:id="@+id/tab_shoujian" 
      <!--图片在文字的上面-->
      android:drawableTop="@drawable/tab_shoujian_selector"
      android:layout_height="match_parent"
      android:checked="true" 
      android:text="****" /> 
    <RadioButton
      style="@style/main_tab" 
      android:id="@+id/tab_me"   
      android:drawableTop="@drawable/tab_me_selector"
      android:layout_height="match_parent" 
      android:text="*" /> 
  </RadioGroup> 
</RelativeLayout> 

 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# Android  # Fragment滑动组件ViewPager  # Fragment  # ViewPager  # Android 开发之BottomBar+ViewPager+Fragment实现炫酷的底部导航效果  # Android App中使用ViewPager+Fragment实现滑动切换效果  # Android App中ViewPager与Fragment结合的一些问题解决  # Android App在ViewPager中使用Fragment的实例讲解  # Android基于ViewPager Fragment实现选项卡  # Android中ViewPager获取当前显示的Fragment  # Android中ViewPager实现滑动指示条及与Fragment的配合  # Android中ViewPager和Fragment的使用  # 跳转  # 完后  # 操作方法  # 希望能  # 在那  # 重写  # 只需要  # 谢谢大家  # 第一页  # 什么都没  # 就可以  # 法会  # 在文字  # 派生类  # method  # stub  # order_count_refresh  # setOnClickListener  # onClick  # void 


相关文章: 浅析上传头像示例及其注意事项  如何配置支付宝与微信支付功能?  如何在宝塔面板创建新站点?  如何用虚拟主机快速搭建网站?详细步骤解析  建站之星伪静态规则如何设置?  广平建站公司哪家专业可靠?如何选择?  全景视频制作网站有哪些,全景图怎么做成网页?  平台云上自主建站:模板化设计与智能工具打造高效网站  如何在宝塔面板中创建新站点?  建站之星会员如何解锁更多建站功能?  网站制作价目表怎么做,珍爱网婚介费用多少?  如何用AWS免费套餐快速搭建高效网站?  制作网站的软件免费下载,免费制作app哪个平台好?  如何使用Golang table-driven基准测试_多组数据测量函数效率  正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?  建站主机数据库如何配置才能提升网站性能?  如何在Tomcat中配置并部署网站项目?  公司网站设计制作厂家,怎么创建自己的一个网站?  定制建站是什么?如何实现个性化需求?  怎么将XML数据可视化 D3.js加载XML  网站制作大概要多少钱一个,做一个平台网站大概多少钱?  GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?  如何将凡科建站内容保存为本地文件?  C++时间戳转换成日期时间的步骤和示例代码  外贸公司网站制作哪家好,maersk船公司官网?  武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?  动图在线制作网站有哪些,滑动动图图集怎么做?  网站制作服务平台,有什么网站可以发布本地服务信息?  ,石家庄四十八中学官网?  建站主机是否等同于虚拟主机?  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  如何在建站之星网店版论坛获取技术支持?  如何快速搭建高效可靠的建站解决方案?  网站制作软件免费下载安装,有哪些免费下载的软件网站?  ,购物网站怎么盈利呢?  宁波免费建站如何选择可靠模板与平台?  如何撰写建站申请书?关键要点有哪些?  如何选择适配移动端的WAP自助建站平台?  ,sp开头的版面叫什么?  武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?  南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?  如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法  西安大型网站制作公司,西安招聘网站最好的是哪个?  制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?  TestNG的testng.xml配置文件怎么写  如何破解联通资金短缺导致的基站建设难题?  深圳企业网站制作设计,在深圳如何网上全流程注册公司?  如何快速生成专业多端适配建站电话?  如何选择建站程序?包含哪些必备功能与类型?  网站制作报价单模板图片,小松挖机官方网站报价? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。