当前位置: 首页 > news >正文

绵阳阡陌网站建设/好的推广方式

绵阳阡陌网站建设,好的推广方式,面包机做面包网站,长沙有什么好玩的地方(给安卓开发精选加星标)转自:大头呆https://www.jianshu.com/p/e754cbd2d329从文档注释来看ViewPager2确实是用来替代ViewPager 的,顺带解决之前ViewPager的一些问题,并且加入了 RTL,竖向滚动支持,下面一起来详细看下吧。ViewPage…

(给安卓开发精选加星标)

转自:大头呆

https://www.jianshu.com/p/e754cbd2d329

从文档注释来看ViewPager2确实是用来替代ViewPager 的,顺带解决之前ViewPager的一些问题,并且加入了 RTL,竖向滚动支持,下面一起来详细看下吧。

ViewPager2 replaces ViewPager, addressing most of its predecessor’s pain-points, including right-to-left layout support, vertical orientation, modifiable Fragment collections, etc.

1、概述

这两天浏览安卓开发者官网的时候,发现google悄然推出了一个新的控件:ViewPager2,一看名称就知道这是一个和我们常用的ViewPager功能相似的控件,算是ViewPager的升级版吧。目前还只是推出了第一个预览版,我们可以直接引入来使用了:

implementation 'androidx.viewpager2:viewpager2:1.0.0-alpha01'

https://developer.android.google.cn/reference/androidx/viewpager2/widget/ViewPager2

我们先来看看有哪些功能和使用上的变化:

新功能:

  • 支持RTL布局

  • 支持竖向滚动

  • 完整支持notifyDataSetChanged

API的变动:

  • FragmentStateAdapter替换了原来的 FragmentStatePagerAdapter

  • RecyclerView.Adapter替换了原来的 PagerAdapter

  • registerOnPageChangeCallback替换了原来的 addPageChangeListener

看了上面这些介绍,有一点比较吸引人的就是支持竖向滚动了,这是怎么实现的呢?ViewPager2的源码不长,我们来简单分析一下。

2、简单解析

通过查看源码得知,ViewPager2是直接继承ViewGroup的,意味着和ViewPager不兼容,类注释上也写了它的作用是取代ViewPager,不过短时间内ViewPager应该还不会被废弃掉。

继续查看源码,发现了两个比较重要的成员变量:

private RecyclerView mRecyclerView;
private LinearLayoutManager mLayoutManager;

所以很清楚得知,ViewPager2的核心实现就是RecyclerView+LinearLayoutManager了,因为LinearLayoutManager本身就支持竖向和横向两种布局方式,所以ViewPager2也能很容易地支持这两种滚动方向了,而几乎不需要添加任何多余的代码。

其实在此之前也不乏有大神采用RecyclerView来实现轮播图效果的,具体实现发生略有不同,但大体思想是一致的。这次ViewPager2的推出意味着这种方法终于被扶正了。

为了让RecyclerView变得像原来的ViewPager,需要设置下SnapHelper:

 new PagerSnapHelper().attachToRecyclerView(mRecyclerView);

熟悉RecyclerView的同学都知道,SnapHelper用于辅助RecyclerView在滚动结束时将Item对齐到某个位置。PagerSnapHelper的作用让滑动结束时使当前Item居中显示,并且 限制一次只能滑动一页,不能快速滑动,这样就和viewpager的交互很像了。

另外和viewpager一样,viewpager2可以承载fragment,我们需要继承实现它提供的FragmentStateAdapter:

public abstract class FragmentStateAdapter extendsRecyclerView.Adapter<FragmentViewHolder> implements StatefulAdapter

这是一个包含FragmentManager和数据状态恢复功能的RecyclerView.Adapter,具体实现可以参看源码。所以大家也可以用TabLayout+ViewPager2+Fragment来实现联动展示效果。

3、使用

通过android:orientation来指定滚动方向

<androidx.viewpager2.widget.ViewPager2android:id="@+id/viewpager2"android:layout_width="match_parent"android:layout_height="200dp"android:orientation="vertical" />

在代码中设置一个普通的RecyclerView.adapter:

ViewPager2 viewPager2=findViewById(R.id.viewpager2);
RecyclerviewAdapter adapter = new RecyclerviewAdapter(this);
viewPager2.setAdapter(adapter);

这样竖直轮播图就大功告成了。

小结

viewpager2利用recyclerview来实现viewpager的功能,无疑使使其可扩展性大大提升,代码也变得更优雅简洁,使用起来也更灵活。不过目前viewpager2只是第一个预览版,还存在稳定性方面的问题,不建议大家引入到正式项目中来,尝尝鲜就好。

看完本文有收获?请分享给更多人

 关注「安卓开发精选」,提升安卓开发技术

1e2595a9586c93dbc9ff6656a1d3546e.png

喜欢就点「好看」呗~

http://www.lbrq.cn/news/810721.html

相关文章:

  • 昆明专业做网站多少钱/营销案例100例小故事
  • 电子商务网站建设如何策划与实施/什么是网络推广营销
  • 临沂网站制作加速企业发展/中央突然宣布一个大消息
  • 网站初期吸引用户注册/网络公司品牌推广
  • 新乡做网站哪家好/seo关键词排优化软件
  • 网站推广其他方案内容/seo网站推广多少钱
  • 有什么做h5的网站/中国网新山东
  • 云南网站建设c3sales/买转发链接
  • 繁体网站怎么做/搜狗seo查询
  • wordpress 去掉图片链接/公司官网优化方案
  • 遵义网站建设服务/成人电脑培训班办公软件
  • 机加工如何用网站开发客户/一站式网络推广服务
  • 网站seo外链怎么做/广州网站优化价格
  • 青岛响应式网站开发/百度网盘搜索引擎官方入口
  • 济南网络广播电视台/关键词优化搜索引擎
  • 重庆南坪网站建设公司/广州信息流推广公司排名
  • 三网合一网站建设合同/服务器ip域名解析
  • 韩国b2c电商网站/百度seo点击排名优化
  • 为什么要建设个人网站/成人教育机构排行前十名
  • 上海企业建站咨询/制作网页一般多少钱
  • 昆山移动网站建设/广州seo优化公司排名
  • 徐州市建设监理协会网站/百度极速版客服人工在线咨询
  • 手机上可视化编程app/企业seo顾问公司
  • wordpress 优缺点/优化网站怎么真实点击
  • 企业宣传网站怎么做/西安网络推广营销公司
  • 阜宁做网站工作室/电子商务平台建设
  • 做外贸外文网站怎么做好/seo关键字怎么优化
  • 三明网站开发/常见的网络营销推广方式有哪些
  • 用ps做美食网站/连接友谊
  • 网站建设公司哪家好该如何选择/南宁seo公司
  • JavaScript核心概念全解析
  • Java 大视界 -- Java 大数据在智能安防视频监控系统中的视频语义理解与智能检索进阶(365)
  • GMP模型
  • ubuntu22.04.4锁定内核应对海光服务器升级内核无法启动问题
  • 基于深度学习的图像分类:使用Vision Transformer(ViT)实现高效分类
  • 小米8(dipper)刷入kernelSU内核root定制rom系统教程以及安装LSPosed模块