ViewPager + FragmentPagerAdapter 实现浏览器多窗口遇到的坑

Python、Selenium实现问卷星自动填写(内含适配个人问卷的方法) 使用Python、Selenium实现问卷星自动填写,内含适配个人问卷的方法。 阅读详情

在使用webView开发一个简易浏览器的过程中,需要完成一个浏览器多窗口的功能,我选择使用Viewpager + FragmentPagerAdapter 来实现该功能,但是开发过程中,遇到了下面这两个彼此冲突的问题:

     1.   可以成功新建或删除窗口,但是,在新建或删除一个窗口时,其他Fragment中的内容会被刷新,作为浏览器,这样的效果无法令人接受。

     2.  Fragment中内容不刷新,但是,当前已经被删除的Fragment的视图却依旧保留在屏幕上,而且,接下来新建的一个窗口会使用这个本应该被删除的Fragment的视图,这个效果同样无法令人接受。

   这两种bug互相冲突,上网查找了很多方法,有说重写instantiateItem方法的、有说重写getItemPosition方法的,也有说重写destroyItem的,可能是我重写的方式不对,都没能解决上面两个bug。

      后来我在 继承了FragmentPagerAdapter的自定义adapter 中重写了getItemId方法,就成功解决了这个问题,代码如下:

@Override
    public long getItemId(int position) {
        return fragments.get(position).hashCode();
    }

     重点就是return的这个 .hashCode() , FragmentPagerAdapter里在根据getItemId(int position)来判断当前position里Fragment是否存在,如果存在,则不会创建亦不会更新,那么要让FragmentPagerAdapter的更新生效,那在getItemId(int)里根据数据返回一个唯一的数据ID,当FragmentPagerAdapter更新时,数据ID改变了,那么Fragment就会调用getItem(int)去获取Fragment,达到更新效果。

   Android新手,如有不足之处,请多多包涵!

  解决方案来源文章:https://www.jianshu.com/p/19b5d2c9afb5

 

【四足机器人项目实战】四足机器人运动学、动力学模型 系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言一、四足机器人实际模型的物理难点二、四足机器人运动学模型1.方法一:DH法建立运动学模型(1)运动学建模构型方法(2)运动学模型描述方法1、基于DH法四足机器人单腿运动学模型公式推导(0)DH法科普1)原理2)实现过程3)评价(1)四足机器人的建模规则、坐标系定义及实物参数确定1)标准Denavit-Hartenberg法建模规则2)单腿运动学模型坐标系定义示意图及简化模型3) 阅读详情

相关推荐

【人工智能】你知道什么是DeepSeek吗?你有去了解过DeepSeek吗?新手要入门DeepSeek的必经之路——初识DeepSeek

【人工智能】初识DeepSeek 详细介绍DeepSeek以及DeepSeek-R1

蒙奇D索大的博客 3387

FragmentPagerAdapter 解决设置不同的Fragment的子类,界面不刷新的问题

这两天遇到一个问题,发现了使用FragmentPagerAdapter的时候,切换不同Fragment子类会导致只用前面加入的Fragment。然后上网搜索相关问题发现还是没有,所以自己看了下源码发现了在FragmentPagerAdapter中的缓存实现是这样的: 当切换Fragment的时候 销毁item: @Override public void destroyIte...

u013258222的专栏 575

基于单目视觉的四旋翼定点降落——如何通过mavros控制pixhawk(二)

    一直拖了这么久没有更新,怪我太懒啦~~~ 今天要特别感谢舒仔仔同学,我的好队友帮我写了这篇博文。这篇文章主要讲了如何通过mavros来控制pixhawk。硬件逻辑是这样子,我们先搞一个odroid(土豪上TX2),再用usb线将odroid与pixhawk连接。所以,odroid发送控制指令来控制pixhawk飞行。pixhawk与外界的通信协议是mavlink。ROS下面有个包叫mavr...

zhengyuxin0507的博客 1万+

Android笔记(十九):WebView浏览器多标签页(多窗口)功能新的实现

背景 之前写过的文章——WebView+Fragment+ViewPager构建浏览器多标签页 虽然实现了多标签页的功能,但是有个弊端就是随着创建的标签页数量增加,viewpager的滑动会越来越卡。之前一直没有时间优化,最近尝试着优化了一下,对Dainty浏览器的多标签页功能抽取出来,进行改造。...

ZBM来了 4069

【IEEE】从Accept到Online:详解Proof校样阶段的关键操作与避坑指南

本文详细解析了IEEE论文从Accept到Online的Proof校样阶段关键操作流程与避坑指南。重点介绍了IEEE Author Gateway平台的使用技巧、校样稿首页的风险点检查,以及多人协作校对策略,帮助作者高效完成论文出版前的最后审核,确保学术成果准确呈现。

weixin_30591551的博客 359

信创改造实战:SpringBoot项目迁移到宝兰德BES 9.5.5的完整避坑指南(附依赖与web.xml配置)

本文详细介绍了将SpringBoot项目迁移到宝兰德BES 9.5.5的完整流程,包括依赖改造、web.xml配置降级等关键步骤。通过实战案例和避坑指南,帮助开发者高效完成国产中间件适配,确保项目平稳运行。特别针对Tomcat依赖排除和BES适配器选择提供了专业建议。

weixin_30689307的博客 742

WebView+Fragment+ViewPager构建浏览器多标签页

public class MyViewPager extends ViewPager implements OnGestureListener{ private boolean isFullScreen=true; //用于标识viewpager是否拦截事件,防止影响标签的左右滑动 private OnLayoutClickListener lc; private

ZBM来了 3856

基于stm32的数控恒压恒流电源设计方案

基于stm32的数控恒压恒流电源设计方案 基于stm32的数控恒压恒流电源设计方案 不包实物,可自己动手制作,可代做 本设计采用220V市电输入工频变压器,将220V交流电压降为24V交流电压,经过全桥整流加电容滤波,输出约32V直流电压.可调输出电压方案采用线性稳压调整器方案,即运放处于比较调整状态,运放输出驱动P型MOS管,电压输出端由电阻分压反馈至运放同相输入端,运放反相输入端由STM32单片机控制TLC5615数模转换器输入模拟电压,根据运放构成比较器原理,运放的同相端和反相端始终趋向于电压相等的特

m0_72265581的博客 7222

Android 用ViewPager实现加载两个webview的可滑动Tab页

先看下最终效果: 同一个页面里,有两个Tab页,分别加载两个不同的网页,可以通过点击页面顶部Tab或者左右滑动来切换Tab。被选中的tab颜色会变化。 下面看下如何实现: 1. 首先是这个页面的布局文件:<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/

本人整理的笔记与总结,涉及Android,Java,React,设计模式,算法等,愿对大家有帮助 2043

YOLO26训练教程,训练自己的数据集教学,从源码下载,配置虚拟环境,准备数据集、训练、验证、推理测试 。实现0到1的完整教学过程。快速入门必看

本文详细介绍了YOLO26目标检测模型的配置与使用流程:1)下载YOLOv11源码并创建Python3.10虚拟环境;2)安装PyTorch2.5.1及相关依赖库;3)准备数据集并修改配置文件;4)编写训练脚本设置参数(640x640分辨率、500轮次);5)验证模型效果;6)使用训练好的模型进行推理测试;7)生成可视化热力图。整个过程涵盖了从环境搭建到模型应用的全流程,并提供了清华镜像源加速下载。

Ai缝合怪、助力小伙伴高效发论文 5287

以宠辱之戒写 SAP Fiori Elements,把标准能力当成身体,把扩展冲动当成大患

SAP Fiori Elements开发中常面临业务方追求"独特页面"的压力,但过度自定义会破坏框架价值。老子"宠辱若惊"的智慧提醒开发者:不应因用户称赞或批评而动摇架构原则。标准模板的价值在于确保业务语义、交互规范和后端服务的一致性。扩展应遵循官方API,将业务逻辑放在ABAP/CDS层而非前端控制器。成熟项目会平衡标准与定制,使用annotation表达UI行为,仅在必要时通过受支持的extension points进行增强,保持系统的长期可维护性。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 999

FragmentpagerAdapter中的getItem方法,在第二次进入承载viewPager的Fragment时不会被调用原因

问题产生原因的背景:为了在Fragment中使用ViewPager,而ViewPager又利用FragmentPagerAdapter中的getItem来创建了子Fragment的需求;如下图界面。 viewPager.setAdapter(new HotWordAdapter(getFragmentManager()//此处传递的mana

漫步番 1235

研制过程评审活动(三)工程研制阶段

工程研制阶段主要任务、及评审活动

Abel的博客 2388

TabLayout、ViewPager、FragmentPagerAdapter实现新闻导航栏

TabLayout、ViewPager、FragmentPagerAdapter实现新闻导航栏

IT从业者,生活精致一点,工作认真一点! 1080

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

ViewPager详解之在FragmentPagerAdapter和PagerAdapter中自如切换

在向前的路上也要时不时回头看看基础 -------------出自《小编本人》 本文就是对于Viewpager用法的详细介绍 不多比比 直接上主菜 在Activity中使用FragmentPagerAdapter和PagerAdapter实现viewpager切换的效果(效果图在上面) 1.Activ...

yuhang01的博客 1445

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

FragmentPagerAdapter+ViewPager实现Tab

FragmentPagerAdapter+ViewPager实现Tab 1.1 效果 1.2 目录 1.3 素材 1.4 顶部提示栏top.xml 1.5 底部标签bottom.xml 1.6 activity_main.xml 1.7 四个切换界面 1.7.1 tab01.xml 1.7.2 tab02.xml 1.7.3 tab03.xml 1.7.4 tab04.xml 1.8 四个...

amoscxy的博客 847

Android中ViewPager使用FragmentPagerAdapter(底部圆点)

上一篇http://blog.youkuaiyun.com/tibib/article/details/8753769简单的介绍了下ViewPager的使用,上一次使用的是PagerAdapter来生成适配每一页,但最常用的是 FragmentPagerAdapter, FragmentStatePagerAdapter,FragmentPagerAdapter, and FragmentStatePag

Tibib的专栏 2万+

Fragment与Viewpager及FragmentPagerAdapter

上一篇我们提到PagerAdapter,但是PagerAdapter比较繁琐,wom

lavimer 1697

ViewPager+FragmentPagerAdapter实现微信5.2.1主界面架构

人的一生,没有一味的苦,没有永远的痛;没有迈不过的坎,没有闯不过的关。 本讲内容:ViewPager+FragmentPagerAdapter实现主界面架构(可以点击和滑动) 示例一:       下面是res/layout/top1.xml 布局文件: <LinearLayout xmlns:android="http://schemas.android.

3465

ViewPager源码解析之FragmentPagerAdapter和FragmentStatePagerAdapter

从FragmentPagerAdapter说起我们经常使用的是ViewPager和Fragment的配合。在第一篇中我们提到了如果ViewPager使用了FragmentPagerAdapter,ViewPager添加View的时机是在onMeasure()的populate()中。//ViewPager.java @Override protected void onMeasure(int

chengkun_123的博客 5146

笔记:ViewPager+FragmentPagerAdapter数据刷新问题

做了一个ViewPager+FragmentPagerAdapter滑动功能,后面由于一个需求,要求每次离开ViewPager对应页面回来后都有跟服务器请求数据,来确保数据是否发生改变。。。。这里省略100000字。。。。。 因此把请求写到生命周期onResume()里,结果就发现了一大串问题,比如FragmentPagerAdapter里数据更新等等。。。。。   这里用一个demo模拟下

木木不 8427

viewpager布局复用中FragmentPagerAdapter的坑,源码分析,控件id的一些思考

一个fragment的布局复用,里面是tablayout+viewpager,viewpager加载不同adapter,adapter继承FragmentPageAdapter。运行后有问题,先初始化的fragment正常显示,后加载的fragment里的viewpager全部是空白,这就很尴尬了,第一反应是fragment没add进FragmentManager,因为在同一个activity里,所

秋月夜的博客 2932

一直以来使用ViewPager和FragmentPagerAdapter或FragmentStatePagerAdapter管理Fragment的错误

viewpager2并没有这个问题。 一直以来我在用viewpager和FragmentPagerAdapter或FragmentStatePagerAdapter管理fragment的时候总是和下面的代码类似,但是下面的代码在某些情况下会出现问题 接下来我们慢慢分析: public class MainActivity extends FragmentActivity { private ViewPager m_vp; private ArrayList<Fragment&g

Allence的博客 4356

FragmentPagerAdapter+ViewPager实现Tab切换效果

1.Activity 加载布局文件,获取Viewpager控件 给ViewPager填充适配器. import android.app.ActionBar; import android.app.ActionBar.Tab; import android.app.Activity; import android.app.Fragment; import android.a...

dengshuo4753的博客 163

使用ViewPager和FragmentPagerAdapter实现Tab

前面我们分别利用ViewPager和Fragment实现了Tab效果。但是使用Fragment实现的Tab不能够左右滑动。如果我们既想使用Fragment又想让Tab能够滑动,那么怎么办呢?这 就是今天的方法,利用ViewPager和FragmentPagerAdapter来实现Tab。 没看过前两篇文章的读者可以点击下面的地址: http://www.cnb...

bai8005的博客 177

viewpager + fragmentpageradapter 切换fragment产生的问题

在使用viewpager+fragmentpageradapter ,起始fragment为A  切换到相邻的fragmentB  然后再切换到A,发现A中fragment内容是fragmentB的内容,这一问题我很困惑。正如你所知道,切换fragment时,会先从fragmentmanager中找是否已经缓存的fragment,有的话直接取出来而不进行重新生成fragment操作,即便是这样也不

h183288132的专栏 2180

ViewPager With FragmentPagerAdapter

采用PagerAdapter中的FragmentPagerAdapter来实现页面切换,适用于a handful of typically more static fragments to be paged through 1.Layout ViewPager <?xml version="1.0" encoding="utf-8"?> <LinearLayo...

dixianmm198686的博客 170
上一篇: 从URI获取本地路径path
AMD556
博客等级 码龄9年 2粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值