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

ViewPager刷新问题原理分析及解决方案(FragmentPagerAdapter+FragementStatePagerAdapter)ViewPager+FragmentPagerAdapte

Android开发中经常用到ViewPager+Fragment+Adapter的场景,一般每个Fragment控制自己的刷新,但是如果想要刷新整个ViewPager怎么做呢?...不由得有些好奇,随跟踪了部分源码,简单整理如下: ViewPager+FragmentPagerAdapter为何不能通过setAdapter做到整体刷新 第二次设置PagerAdapter的时候,首先会将原来的...ViewPager+FragementStatePagerAdapter可以通过setAdapter做到整体刷新 同样先看一下FragementStatePagerAdapter的destroyItem...,在自己的Fragment缓存列表中取不到,就新建。...作者:看书的小蜗牛 原文链接:ViewPager刷新问题原理分析及解决方案(FragmentPagerAdapter+FragementStatePagerAdapter) 仅供参考,欢迎指正

3.3K20

模板代码 - 列表和下拉刷新

模板代码 - 列表和下拉刷新   手机应用一个常见的界面模式就是:顶部的ActionBar + TabStrip导航,中间的ListView,可以下拉刷新或者是底部的加载更多。...//关联viewPager和FragmentStatePagerAdapter实例 viewPager.setAdapter(new MyPagerAdapter(getSupportFragmentManager...假设我们使用ListView显示一个下载应用的列表界面,在ListView的底部显示“加载更多”这样的按钮,那么就是让ListView同时显示2种类型的条目。   ...为显示的“应用信息”列表条目定义AppInfoViewHolder,它包含一个name和icon,布局文件item_appinfo是简单的ImageView和TextView,其ViewHolder定义如下...}); } }.start(); } }   ListView可以添加多种类型的显示条目,常见的有顶部的轮播图片,顶部下拉刷新

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

    Material Design中的一些趣事

    ,没错,这里我们就是这样干的,因为只有一个刷新,却有三个页面,所以这里还有一个需要注意的地方就是刷新之后三个页面的数据分配问题,待会我们再来讲这个问题。...布局写完之后,我们来完成viewpager和Fragment的结合。...我们的ViewPager需要一个FragmentPagerAdapter来填充,在adapter中我们需要注意的是Fragment一定要写成员变量,切记不可在getItem方法中返回的时候直接new一个...,刷新的时候我们还需要注意一点,就是当你把toolbar里面的内容(也就是整个头部)顶上去之后,再下拉,它会立马进行刷新,不会等到你把toolbar中的内容拉到正常状态再进行刷新,详细解决方案请参考 CoordinatorLayout...首先,在Activity中,我们可以根据ViewPager.getCurrentItem()方法来判断我们处于哪个fragment中,然后我们在Fragment中写set方法: public void

    49110

    ViewPager+ Fragment结合的setUserVisibleHint()调用时机

    最近的项目使用到了ViewPager + Fragment的模式,要求在每次Fragment获取显示的时候来刷新数据,该项目下ViewPager有5个子fragment,在onCreateView及fragment...的setUserVisibleHint(bool isVisibleToUser)中的isVisibleToUser为true的时候刷新数据的时候出现数据多次刷新的情况,因此对ViewPage + Fragment...项目布局最顶层5个button,主体是ViewPager+fragment, 可以通过点击button直接跳转到对应的fragment,也可以通过左右滑动来进行相邻跳转。 ?...fragment如何变化,首先被选中的fragment会调用参数为true的setUserVisibleHint方法,被选中的fragment与相邻的fragment的状态肯定是onCreate的状态(如果未create

    1.7K30

    Android开发笔记(一百七十二)第二代翻页视图ViewPager2

    notifyItem***方法,从而动态刷新某项视图; 3、除了当前页,也支持展示左右两页的部分区域; 4、支持在翻页过程中展示自定义的切换动画; 虽然ViewPager2增加了这么棒的功能,但它用起来非常简单...mContext; // 声明一个上下文对象     private List mGoodsList = new ArrayList(); // 声明一个商品列表...        public TextView tv_desc; // 声明列表项描述的文本视图         public ItemHolder(View v) {             super...FragmentStateAdapter {     private List mGoodsList = new ArrayList(); // 声明一个商品列表...    // 碎片页适配器的构造方法,传入碎片管理器与商品信息列表     public MobilePagerAdapter(FragmentActivity fa, List<GoodsInfo

    2.3K30

    一次使用Kotlin实现酷炫多选操作的尝试

    而筛选只应用在主列表,不会影响已经选择的item列表。 那时我明白了必须千方百计把Vitaly的多选概念设计实现出来;所以我几乎立即就开始了编写这个控件的工作。...1478063387383413.gif 实现 这个控件有一个带了两个RecyclerView的ViewPager,我们可以通过重写getPageWidth方法返回一个0到1之间的浮点数来让ViewPager...一个具有两个页面的ViewPager,每个页面包含一个RecyclerView。未被选择的item在左边的列表。选中的item在右边的列表。...RecyclerView删除了这个view,所以这会导致错误: sourceRecycler.layoutManager.removeViewAt(position) 技术栈 我们选择Kotlin语言来做这个工作...3.接下来,为未选中的列表和选中列表创建两个adapter。

    1.2K20

    ViewPager2+Fragment操作笔记

    ViewPager2+Fragment操作笔记 ViewPager2简介 ViewPager2官网介绍 ViewPager2官网Samples 距离ViewPager2正式版的发布已经一年多了,目前ViewPager...; 支持DiffUitl,可以实现局部刷新; 支持RTL(right-to-left),对于一些有出海需求的APP非常有用; 支持ItemDecorator,搭配PageTransformer实现炫酷的跳转动画...实际操作效果 上滑吸顶+标题页面左右滑动+横滑和竖滑列表+标题页面数据和数量更新 上滑吸顶 CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout...左右滑动 ViewPager2+TabLayout+Fragment 横滑和竖滑列表 RecycleView+NestedScrollableHost 标题页面数据和数量 TabLayoutMediator...更新数据的时候遇到的崩溃: Fragment already added 重写getItemId方法,该方法返回的值与数据有关而不是与数据在列表中的索引有关。

    4.3K31

    嵌套滑动通用解决方案--NestedScrollingParent2

    京东首页 这是京东的首页,忽略顶部和顶部,大致理解视图结构就是:最外层为多布局的RecyclerView,最后一个item是tabLayout+ViewPager,ViewPager的每个fragment...所以按照正常处理滑动冲突的思路处理--当tab没到顶部时,parent拦截事件,tab到顶部时 parent就不拦截事件,但是由于手指没抬起来,所以这一事件序列还是继续给parent,不会到内部RecyclerView...但其实在真实应用中,可能 头部 和 列表 的数据来自不同的接口,当列表的数据请求失败时要展示缺省图,但头部还是会展示。这时头部和列表 分开实现 是比较好的选择。 这里给出解决方案: <?...2.3 NestedScrollingParent2LayoutImpl3的实现原理 代码如下 /** * 处理RecyclerView 套viewPager, viewPager内的fragment...(未消耗的距离) * @param dyUnconsumed 垂直方向嵌套滑动的子View未滑动的距离(未消耗的距离) * @param type 滑动类型,ViewCompat.TYPE_NON_TOUCH

    3.8K31

    Android蹲坑的疑难杂症集锦一

    这期要聊的是那么躺在坑里的需求,想想这一路走来,本人还能正常的行走于人世,真是好感动呢,感谢产品和QA的不杀之恩。 1、TextView的由于Span导致省略号显示不正常问题。...5、ViewPager嵌套RecyclerView还有轮播图的手势冲突,参考:linkagescroll。...7、ViewPager的实时数据刷新。 8、CardView 慎用,因为在某些低版本的机器上会有白带,需要的话可以用shape实现圆角。 9、图片压缩安利。...1、之前分享过一篇文章《文本编辑和显示(emoji表情,@某人、链接高亮点击)》,这里用到的Spanable替代String用于TextView的显示,一般情况下是没什么问题的,但是如果你需要在列表中或者详情中做省略号处理...ThemeAlpha" parent="AppTheme"> true 5、更新ViewPager

    96430

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

    | 导语 苹果在iOS 7的时候就引入了卡片列表进行多任务切换,往上滑动就可以移除掉某个app,到了最新的iOS 13,其多任务列表也是在这种卡片列表样式的基础上进行了优化;Android阵营的华为,小米等厂商也是陆续地引入这种多任务列表样式...那怎样在Android上实现一个iOS多任务列表效果呢? 一. 实现效果 先看看iOS的多任务列表长啥样。 1-min.gif 再来看看华为的多任务列表。...基于ViewPager现有能力,要仿照iOS多任务列表效果,还需要修改以下几点:        1)ViewPager默认的item排列是横向顺序排列,需要变成卡片叠加排列        2)ViewPager...卡片宽高 我们知道,正常情况我们在Fragment返回的View是铺满ViewPager宽高的,上下的空隙我们可以设置padding来实现,左右的是不是也可以设置padding来实现呢?        ...总结 最后总结一下,本篇介绍了如何基于ViewPager,实现了一个类似iOS多任务列表效果,主要目的在于验证方案的可行性,即如何在已有控件的基础上快速复用来实现我们要的效果,虽然效果实现出来了,但对比

    3.7K60

    Android自动化页面测速在美团的实践

    特殊情况未考虑:忽略了ViewPager+Fragment延时加载这些常见而复杂的情况,这些情况会造成实际测速时间非常不准。...测速定义 我们把页面加载流程抽象成一个通用的过程模型:页面初始化 -> 初次渲染完成 -> 网络请求发起 -> 请求完成并刷新页面 -> 二次渲染完成。...,一进来会先请求config接口,然后请求list接口,当list接口回来后展示列表数据,那么该页面的初始请求就是config和list接口。...在构造函数中直接调用Java的API来计算时间,之后传入SDK中,而不是直接调用SDK的方法,是为了防止MultiDex注入之前,调用到未注入的Dex中的类。...作者简介 文杰,美团前端Android开发工程师,2016年毕业于天津工业大学,同年加入美团点评到店餐饮事业群,从事商家销售端移动应用开发工作。

    69820

    高效开发 MVVM 和 databinding 你需要使用的工具

    我们用常见的下拉刷新控件PullToRefreshLayout来举例子。...实例,PullToRefreshLayout 是一个刷新列表控件,我们通过使用ReplyCommand监听下拉刷新和上拉加载的监听器是这样写的: 我们使用统一的ReplyCommand来处理控件的各种事件...binding-collection-adapter 「binding-collection-adapter」对所有需要adapter的控件进行了封装,比如一些常用的:ListView、RecyclerView、ViewPager...这样我们就绑定好了这个列表控件的多布局逻辑了。一个空数据时候的布局,一个正常返回数据时候的布局。...(); 当我们网络请求返回的时候,我们在数据回调里,通过对数据类型的处理,进行ItemViewModel的构造,最后只需要将构造好的对象一个个添加到这个ObservableList数据结构中去,界面的刷新工作都在对应的

    66420
    领券