全网整合营销服务商

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

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

Android使用ViewPager实现导航

首先先了解ViewPager实现的出效果是能够使视图左右滑动。

ViewPager在XML文件中的声明和其他一些控件的声明有点儿不一样

而android.support.v4.view是Android界面特殊效果的第三方加载的jar包,能够向下兼容。

<android.support.v4.view.ViewPager
  ...
  ...
>
</android.support.v4.view.ViewPager>

加载显示的页卡:需要将layout布局文件转型为View对象

(1)
LayoutInflater lf = getLayoutInfalter().from(this);
lf.inflate(resource,root);
(2)
View.inflate(context,resource,root);
PagerTabStrip 和 PagerTitleStrip

看命名也能够知道,这俩用来设置Title的就像微信主界面底部显示的目录(微信、通讯录、发现、我)一样,能够导航用户所滑到的页面Title。

<android.support.v4.view.ViewPager
  ...
>
 <android.support.v4.view.PagerTabStrip
   ...
   ...
   >
 </android.support.v4.view.PagerTabStrip>
</android.support.v4.view.ViewPager>
<!-- PagerTitleStrip的定义也和PagerTabTitle一样,在ViewPager中 -->

一般在使用时,二者取一用即可,如果两者同时使用,PagerTabStrip会失效

当然,PagerTabStrip 和 PagerTitleStrip也通过设置一些属性来美化导航目录

private PagerTabStrip tabStrip;  
    tabStrip = (PagerTabStrip) findViewById(R.id.tabStrip);
    tabStrip.setBackgroundColor(Color.GRAY);
       tabStrip.setTextColor(Color.BLACK);
    tabStrip.setDrawFullUnderline(false);
    tabStrip.setTabIndicatorColor(Color.GREEN);

对于ViewPager对应的有三种不同的适配器,所对应的数据源也有所不同

(1)PagerAdapter  ---- 数据源:List<View>

package com.Liuyt.s03_e19_viewpager;
import java.util.List;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
public class MyPagerAdapter extends PagerAdapter {
  private List<View> viewList;
  private List<String> titleList;
  public MyPagerAdapter(List<View> viewList, List<String> titleList) {
    this.viewList = viewList;
    this.titleList = titleList;
  }
  /*
   * 得到页卡的数量
   */
  @Override
  public int getCount() {
    // TODO Auto-generated method stub
    return viewList.size();
  }
  /*
   * 判断View是否属于Object对象
   */
  @Override
  public boolean isViewFromObject(View arg0, Object arg1) {
    // TODO Auto-generated method stub
    return arg0 == arg1;
  }
  /*
   * 实例化一个页卡
   */
  @Override
  public Object instantiateItem(ViewGroup container, int position) {
    // TODO Auto-generated method stub
    container.addView(viewList.get(position));
    return viewList.get(position);
  }
  /*
   * 销毁一个页卡
   */
  @Override
  public void destroyItem(ViewGroup container, int position, Object object) {
    // TODO Auto-generated method stub
    container.removeView(viewList.get(position));
  }
  /*
   * 设置viewPager的标题
   */
  @Override
  public CharSequence getPageTitle(int position) {
    // TODO Auto-generated method stub
    return titleList.get(position);
  }
}

(2)FragmentPagerAdapter ---- 数据源:List<Fragment>

package com.Liuyt.s03_e19_viewpager;
import java.util.List;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
public class MyFragmentPagerAdapter extends FragmentPagerAdapter{
  private List<Fragment>fragList;
  private List<String>titleList;
  public MyFragmentPagerAdapter(FragmentManager fm,List<Fragment>fragList,List<String>titleList) {
    super(fm);
    // TODO Auto-generated constructor stub
    this.fragList = fragList;
    this.titleList = titleList;
  }
  @Override
  public Fragment getItem(int arg0) {
    // TODO Auto-generated method stub
    return fragList.get(arg0);
  }
  @Override
  public int getCount() {
    // TODO Auto-generated method stub
    return fragList.size();
  }
  @Override
  public CharSequence getPageTitle(int position) {
    // TODO Auto-generated method stub
    return titleList.get(position);
  }
}

(3)FragmentStatePagerAdapter ---- 数据源:List<Fragment>

这儿就不贴代码了,FragmentStatePagerAdapter的代码和FragmentPagerAdapter 的代码差不很多,两者差别在于一个在滑动之后会调用destroy的方法销毁页卡,而另一个并不会对页卡进行销毁。

最后是监听器,ViewPager使用OnPagerChangeListener监听器来监听所滑动到的是哪个页面,中间常用的方法是public void onPagerSelected(int arg0){}

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!


# android  # 导航栏实现  # viewpager实现导航  # Android中TabLayout+ViewPager 简单实现app底部Tab导航栏  # Android自定义ViewPagerIndicator实现炫酷导航栏指示器(ViewPager+F  # Android动态给ViewPager添加Indicator导航  # Android 利用ViewPager+GridView实现首页导航栏布局分页效果  # Android 中 TabHost与ViewPager结合实现首页导航效果  # ViewPager顶部导航栏联动效果(标题栏条目多)  # Android 开发之BottomBar+ViewPager+Fragment实现炫酷的底部导航效果  # Android ViewPager制作新手导航页(动态加载)  # Android ViewPager导航小圆点实现无限循环效果  # 的是  # 加载  # 就像  # 就不  # 有所不同  # 会对  # 第三方  # 后会  # 有三种  # 滑到  # 所对应  # 这俩  # 向下兼容  # private  # 二者取一用  # tabStrip  # findViewById  # 微信主  # Title  # PagerTabTitle 


相关文章: 建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析  企业微网站怎么做,公司网站和公众号有什么区别?  建站之星logo尺寸如何设置最合适?  如何用AWS免费套餐快速搭建高效网站?  ,网页ppt怎么弄成自己的ppt?  C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)  建站之星如何助力企业快速打造五合一网站?  如何在阿里云香港服务器快速搭建网站?  教育培训网站制作流程,请问edu教育网站的域名怎么申请?  宝塔新建站点为何无法访问?如何排查?  Android滚轮选择时间控件使用详解  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  如何在IIS7上新建站点并设置安全权限?  建站之星如何助力网站排名飙升?揭秘高效技巧  宝塔面板如何快速创建新站点?  如何通过商城自助建站源码实现零基础高效建站?  建站上传速度慢?如何优化加速网站加载效率?  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  ppt制作免费网站有哪些,ppt模板免费下载网站?  制作证书网站有哪些,全国城建培训中心证书查询官网?  如何快速搭建高效简练网站?  网站企业制作流程,用什么语言做企业网站比较好?  建站之星下载版如何获取与安装?  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  网站设计制作企业有哪些,抖音官网主页怎么设置?  建站之星后台密码遗忘?如何快速找回?  宝塔新建站点报错如何解决?  如何续费美橙建站之星域名及服务?  成都网站制作公司哪家好,四川省职工服务网是做什么用?  网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?  长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  表情包在线制作网站免费,表情包怎么弄?  如何在局域网内绑定自建网站域名?  简易网站制作视频教程,使用记事本编写一个简单的网页html文件?  代刷网站制作软件,别人代刷火车票靠谱吗?  如何实现建站之星域名转发设置?  网站制作新手教程,新手建设一个网站需要注意些什么?  如何在建站之星网店版论坛获取技术支持?  我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?  制作表格网站有哪些,线上表格怎么弄?  上海网站制作开发公司,上海买房比较好的网站有哪些?  建站主机是否属于云主机类型?  建站之星备案流程有哪些注意事项?  h5网站制作工具有哪些,h5页面制作工具有哪些?  如何选择高效可靠的多用户建站源码资源?  如何在IIS中新建站点并配置端口与IP地址?  如何生成腾讯云建站专用兑换码?  如何在服务器上三步完成建站并提升流量?  建站之星代理如何获取技术支持? 

您的项目需求

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