首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ViewPager2:官方Viewpager升级版来临

这两天浏览安卓开发者官网的时候,发现google悄然推出了一个新的控件:ViewPager2,一看名称就知道这是一个和我们常用的ViewPager功能相似的控件,算是ViewPager的升级版吧。...简单解析 通过查看源码得知,ViewPager2是直接继承ViewGroup的,意味着和ViewPager不兼容,类注释上也写了它的作用是取代ViewPager,不过短时间内ViewPager应该还不会被废弃掉...的核心实现就是RecyclerView+LinearLayoutManager了,因为LinearLayoutManager本身就支持竖向和横向两种布局方式,所以ViewPager2也能很容易地支持这两种滚动方向了...PagerSnapHelper的作用让滑动结束时使当前Item居中显示,并且 限制一次只能滑动一页,不能快速滑动,这样就和viewpager的交互很像了。...不过目前viewpager2只是第一个预览版,还存在稳定性方面的问题,不建议大家引入到正式项目中来,尝尝鲜就好。

1.8K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android-ViewPager2

    今天我们介绍一下猪脚-ViewPager2,ViewPager2的出现是为了替代ViewPager,它有以下几个优势: 支持RTL布局, 支持竖向滚动 支持notifyDataSetChanged RTL...布局是Right To Left 布局也就是从右往左的布局,大家知道我们平常写的布局都是从左往右,但是如果你适配阿拉伯语等环境的UI布局,他们的写法是从右往左的,具体这里不做研究。...是直接继承ViewGroup的,意味着和ViewPager不兼容.ViewPager2的核心实现就是RecyclerView+LinearLayoutManager了,因为LinearLayoutManager...本身就支持竖向和横向两种布局方式,所以ViewPager2也能很容易地支持这两种滚动方向了,而几乎不需要添加任何多余的代码。...2.1基本使用 布局: ?

    1.5K20

    【ViewPager2避坑系列】瞬间暴增数个Fragment

    由于Log太长,一屏根本截不完,反正就是很多个Fragment经历了onCreate->onDestory的所有过程; 操作前,只有Fragment2创建并显示,理论上旋转屏幕之后,只有Fragment2...目前只支持ItemView的布局参数是MATCH_PARENT,就是填充父布局的效果;由于ViewPager2是基于RecyclerView,理论上每个ItemView一定会是MATCH_PARENT,...LinearLayout,在布局里面,ViewPager2 layout_width="0dp" layout_weight="1",可能是width=0dp && weight=1造成,扒一扒LinearLayout...就失去了ItemView一屏显示一个的特性,所以会出现开头说的瞬间暴增多个Fragment现象; 由于ViewPager2配合Fragment使用时,根布局是FrameLayout这个无法改变,解决办法就是不允许出现跟滑动方向相同的维度测量上...,出现UNSPECIFIED; 如果父布局是LinearLayout,横向滑动时要避免layout_width="0dp"和layout_weight="1",纵向滑动时要避免layout_height

    7.7K30

    ConstraintLayout+ViewPager2打造《摇一摇新年幸运签》App

    但是这就产生了一个问题,布局嵌套,所以这也是我为什么采用ConstraintLayout来实现的原因,如下图,只用了一层。...,左边和父布局的左边相约束,右边和父布局的右边相约束。...(item in pic) { newList.add(item) } newList.add(pic[0]) 当ViewPager2滑动到第0位和最后一位时的处理分别如下 位置 处理 currentPosition...在ViewPager2的滑动监听的onPageSelected方法中调用如下方法即可 记得做如下判断 if (position <= llPointContainer.childCount) updateIndicator...横向动画起始位置,相对于屏幕的百分比,50%表示动画从屏幕中间开始 pivotY 纵向动画起始位置,相对于屏幕的百分比,50%表示动画从屏幕中间开始 fromXScale 横向动画开始前的缩放,0.0为不显示

    1.8K20

    ConstraintLayout+ViewPager2打造《摇一摇新年幸运签》App

    但是这就产生了一个问题,布局嵌套,所以这也是我为什么采用ConstraintLayout来实现的原因,如下图,只用了一层。...,左边和父布局的左边相约束,右边和父布局的右边相约束。...(item in pic) { newList.add(item) } newList.add(pic[0]) 当ViewPager2滑动到第0位和最后一位时的处理分别如下 位置 处理 currentPosition...在ViewPager2的滑动监听的onPageSelected方法中调用如下方法即可 记得做如下判断 if (position <= llPointContainer.childCount) updateIndicator...横向动画起始位置,相对于屏幕的百分比,50%表示动画从屏幕中间开始 pivotY 纵向动画起始位置,相对于屏幕的百分比,50%表示动画从屏幕中间开始 fromXScale 横向动画开始前的缩放,0.0为不显示

    72620

    怎样在Android上实现一个iOS多任务列表效果

    padding区域内,不止是ViewPager,平时的listview,scrollview这类滚动控件,都是可以通过这个接口来避免上述问题,内部实现原理这里不展开。        ...PageTransformer,滚动过程中,ViewPager会回调transformPage(View page, float position),在这里面做想要的变化就行,PageTransformer具体的使用方法这里不细讲...可以理解为ViewPager自己保存的一个和当前显示顺序相同的数组,直接拿来用就行了。        ...更新:        偶然看到androidx包下多了个ViewPager2,吃惊,看一下代码,注释如下: 1.png        可以看到,ViewPager2已经支持了从右到左的布局了,也支持竖向布局...目前ViewPager2还是处于beta版,估计还有一些bug,期待后续正式上线

    3.7K60

    移动开发作业一

    在每个 Fragment 类中,定义要显示的内容和布局,例如 RecyclerView 列表。 在 Fragment 中处理与该选项卡相关的数据和功能,如加载数据、处理点击事件等。 3....XML 布局: 为每个 Fragment 创建对应的 XML 布局文件,用于定义该选项卡页面的界面元素。 在某一个 XML 布局中使用 RecyclerView 控件,用于显示列表效果。 4....关键代码解析 图片 该布局文件定义了一个简单的消息项,包括消息发送者的名称 (senderTextView)、消息内容 (contentTextView) 和时间戳 (timestampTextView...图片 View对象view用于加载片段的布局,通过inflater.inflate方法将布局文件R.layout.wetalks填充到片段中。这个布局包含一个RecyclerView控件。...由于Gradle的版本问题,不能使用switch-case语句,注意隐藏其他片段,以确保只显示一个特定的片段。 GitHub仓库地址 https://github.com/k13in/WeTalks

    23630

    Android MVVM框架搭建(四)RecyclerVIew + ViewPager2 + BaseQuickAdapter

    显示数据 五、绑定点击事件 六、协调布局使用 七、保存本地数据库 1....热门壁纸数据处理 八、ViewPager2显示数据 1. 布局使用ViewPager2 2. BaseQuickAdapter使用 3. PictureRepository 4....四、RecyclerView显示数据   因为返回的数据比较多,因此通过RecyclerView来进行显示,作为壁纸显示可以通过更改布局管理器,把列表变成纵向两列的形式去显示,首先我们先修改activity_main.xml...八、ViewPager2显示数据   当点击某一个图片的时候,将值传到详情页面去,然后在这个页面可以左右滑动去查看图片,这无疑是比看一个点一个要好一些,可以利用ViewPager2来解决。 1....vp的当前位置item,这里有一个false,为什么是false,因为不需要显示动画效果,如果不设置为false,当所选的位置不是第0个时,会有一个动画效果,现在去掉这个效果。

    2.8K10

    Android MVVM框架搭建(四)RecyclerVIew + ViewPager2 + BaseQuickAdapter

    显示数据 五、绑定点击事件 六、协调布局使用 七、保存本地数据库 1....热门壁纸数据处理 八、ViewPager2显示数据 1. 布局使用ViewPager2 2. BaseQuickAdapter使用 3. PictureRepository 4....四、RecyclerView显示数据   因为返回的数据比较多,因此通过RecyclerView来进行显示,作为壁纸显示可以通过更改布局管理器,把列表变成纵向两列的形式去显示,首先我们先修改activity_main.xml...八、ViewPager2显示数据   当点击某一个图片的时候,将值传到详情页面去,然后在这个页面可以左右滑动去查看图片,这无疑是比看一个点一个要好一些,可以利用ViewPager2来解决。 1....vp的当前位置item,这里有一个false,为什么是false,因为不需要显示动画效果,如果不设置为false,当所选的位置不是第0个时,会有一个动画效果,现在去掉这个效果。

    2.1K20

    Android面试题之App的卡顿监控和卡顿优化

    卡顿优化 这里主要介绍卡顿优化方面的布局优化 布局优化 1、 在主线程中,加载SP,或者是缓存加载,JSON解析,可以放到Idelhander 2、 viewpager的懒加载,用viewpager2替换...等布局,则可以考虑根布局使用merge标签,如果根布局使用merge标签,在LayoutInfater中必须指定attachToParent为true,否则会崩溃,同时this.addView就不需要了...4、 如果view不一定会显示,此时可以使用 ViewStub 来包裹此View 以避免不需要显示view但是又需要加载view消耗资源。...IO读取XML布局文件进行XML解析,再根据解析结果利用反射创建布局中的View/ViewGroup对象。...SurfaceFlinger PageFlip 机制进行监控 使用 :adb service call SurfaceFlinger 1013 备注:需要系统权限 其他卡顿监控的工具 1、 systrace 一般用来检测滑动的情况

    12210

    【HarmonyOS应用开发——ArkTS语言】购物商城的实现【合集】

    (根据名称和常见的组件生命周期逻辑推测)。...接着是一个 Text 组件,用于显示产品的名称(传入的 txt 参数),设置了字体大小为 15,加粗字体(FontWeight.Bold)以及顶部有一定的外边距,使其与图片有间隔。...,点击不同选项卡可切换显示不同的内容页面,同时在切换时还实现了相应的状态更新及样式变化等功能。...该函数接收三个参数: itemIndex(表示当前选项卡的索引) title(选项卡对应的标题文本) ico(用于显示的图标对应的字符编码,通常结合自定义字体来显示图标样式),并基于这些参数构建一个包含图标和标题文本的...,如 Column、Row 等布局的巧妙嵌套;借助响应式状态变量与数据循环达成数据驱动 UI,确保数据与界面显示一致。

    14510

    【HarmonyOS应用开发——ArkTS语言】购物商城的实现【合集】

    (根据名称和常见的组件生命周期逻辑推测)。...接着是一个 Text 组件,用于显示产品的名称(传入的 txt 参数),设置了字体大小为 15,加粗字体(FontWeight.Bold)以及顶部有一定的外边距,使其与图片有间隔。...,点击不同选项卡可切换显示不同的内容页面,同时在切换时还实现了相应的状态更新及样式变化等功能。...该函数接收三个参数: itemIndex(表示当前选项卡的索引) title(选项卡对应的标题文本) ico(用于显示的图标对应的字符编码,通常结合自定义字体来显示图标样式),并基于这些参数构建一个包含图标和标题文本的...,如 Column、Row 等布局的巧妙嵌套;借助响应式状态变量与数据循环达成数据驱动 UI,确保数据与界面显示一致。

    11000

    最新iOS设计规范三|3大界面要素:栏(Bars)

    例如:在选项卡式布局中,大标题有助于说明活动选项卡,并指示用户何时已滚动到顶部。Phone 使用这种方法,而Music 则使用大标题来区分内容区域。...在iOS 13及更高版本中,默认情况下,大标题导航栏不包含背景材质或阴影。另外,随着页面滑动,大标题要转换为标准标题。 ? 隐藏大标题导航栏的边框。...搜索栏可以单独显示,也可以显示在导航栏或内容视图中。当显示在导航栏中时,可以将搜索栏固定在导航栏中,以便始终可以调用。也可以将其折叠,当用户向上滑动时展开显示。...允许用户隐藏侧边栏以为其内容创造更多空间,并使用内置的边缘滑动手势再次显示侧边栏。避免在默认情况下隐藏边栏。 侧边栏中的标题要保持简洁明了。省略不必要和多余的词。...选项卡太少也可能是一个问题,因为它会使您的界面显得断开。尽管“更多”选项卡可以显示更多的选项卡,但它需要额外的点击才能显示出来,并且可能会浪费空间。

    9.9K10

    【Android从零单排系列二十八】《Android视图控件——TabHost》

    一 TabHost基本介绍 通常用于描述Android应用程序中实现Tab布局的一种方法。Tab布局是一种常见的用户界面布局方式,允许用户在不同的选项卡之间切换内容。...TabHost是一个容器控件,可以容纳多个选项卡(即Tab页面),而TabWidget用于显示选项卡的标签。...通过使用TabHost和TabWidget,开发人员可以轻松创建带有选项卡的界面,并在用户点击选项卡时切换到相应的内容页面。每个选项卡都可以包含独立的视图或片段,以呈现不同的功能或信息。...setCurrentTab(int index):设置当前显示的选项卡,index为选项卡的索引值。 getCurrentTab():获取当前显示的选项卡的索引值。...在布局文件中定义一个TabHost控件。 通过getTabHost()方法获取TabHost对象。 使用newTabSpec()创建选项卡规范,并设置标签显示文本和内容视图。

    34320
    领券