自定义的带tab的可左右滑动的viewpager之二viewpager与fragment不兼容

利用ViewPager实现可左右滑动的Action Tab 1. ViewPager要点: ViewPager 是一个布局管理类(layout manager),用于提供页面的左右滑动功能,类似于ListView,也有为ViewPager提供     数据(Fragment)的 adapter 控制类(FragmentPagerAdapter, FragmentStatePagerAdapter)。ViewPager 经常和 Fragment 一 阅读详情

总的来说,这个TAB用起来还算方便吧大笑

不过随着用的地方多起来,发现了一些问题,比如下面这个界面:


TAB1和TAB2都是表单,保存按钮对两个TAB都有效:若当前显示TAB1,点击保存则保存TAB1的form;若当前显示TAB2,点击保存则TAB2的form。现在的情况是,在每个TAB的fragment中都拿到这个保存的button,然后对其设置click事件,如此操作可能有这样的一个结果:打开这个界面,什么也不操作,直接点击保存,这个时候保存的是TAB2的form,而当前显示的却是TAB1。


这个问题困扰了很久,尝试了很多方法:


1、给TAB标签的onclick事件中加入调用fragment的onResume(),手动去调fragment的onResume方法,在fragment的onResume()中设置button的onclick事件。点击TAB即可改变button的监听器,但是对于直接进页面就点击保存按钮仍然无效;

2、给viewpage的滑动事件中添加调用fragment的onResume(),这个方法和方法1效果类似;

3、想:一般情况很少有人打开界面之后直接点击保存,都会做一些界面操作,比如,输入文本之类,所以想到给TAB1的fragment中设置一个OnTouchListener,这个只要用户对TAB1界面操作,在OnTouchListener中捕捉到,然后对button设置click,这样就OK了。即使用户进入界面,什么不操作直接点击保存,也不会出现保存错误的问题。


虽然想要的效果实现了,但是心里感觉还是很不爽,总感觉有个疙瘩。今天无意中看到一篇博文:“Fragment真正意义上的onResume和onPause:Fragment虽然有onResume和onPause的,但是这两个方法是Activity的方法,调用时机也是与Activity相同,和ViewPager搭配使用这个方法就很鸡肋了,根本不是你想要的效果”,拿过来一试,果然很爽。


在TAB的fragment中重写它的setUserVisibleHint(),如下:

	@Override
	public void setUserVisibleHint(boolean isVisibleToUser) {
		super.setUserVisibleHint(isVisibleToUser);
		if(isVisibleToUser){
			activity.findViewById(R.id.bt_title_Right).setOnClickListener(this);
		}
	}


很好的结果了这个问题,在此感谢:农民伯伯。


参考:http://www.cnblogs.com/over140/p/3392164.html


Android项目Tab类型主界面大总结 Fragment+TabPageIndicator+ViewPager 评价:每个Fragment中的控件的处理,都是独立到各自的类中,相对来说主Activity简化了不少,可惜没有左右滑动的效果了。// 如果MessageFragment为空,则创建一个并添加到界面上。// 如果MessageFragment为空,则创建一个并添加到界面上。// 当点击了消息tab时,改变控件的图片和文字颜色。// 当点击了消息tab时,改变控件的图片和文字颜色。// 当点击了动态tab时,改变控件的图片和文字颜色。// 当点击了设置tab时,改变控件的图片和文字颜色。 阅读详情

相关推荐

android 从后台动态生成tab 使用viewpager + fragment ( 在fragment上生成多个framgent)

     由于公司需要,现在在写android,然后就遇到了一个动态生成tab顶部选项框的需求(怎么办,我也很无奈啊),经过两天的怕坑总算是完成了,所以,下面我就要贴代码了(就是这么直接)。      首先,写一个可以左右滑动的父fragment的布局文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns...

码小强新手博客 1112

关于TabLayout+ViewPager组合实现多页面滑动

关于TabLayout+ViewPager组合实现多页面滑动

Hunter ——Android交流专栏 6813

基于Java的高校校园点餐系统

本文介绍了一个基于Java技术开发的高校校园点餐系统,该系统以B/S结构为基础,采用MySQL作为数据库,实现了一个高效、便捷的在线点餐平台。系统主要面向三类用户:管理员、用户和食堂工作人员,提供包括用户管理、食堂管理、菜单管理、订单管理等在内的多项功能。通过系统的具体测试,验证了其可行性和有效性,为高校师生提供了一个科学化、系统化的点餐服务。高校校园点餐系统的开发和实现,不仅提高了校园餐饮服务的效率和质量,也为师生提供了一个更加便捷的点餐体验。

a632341031的博客 841

tab切换fragment时,会出现滑动viewpager卡顿迟缓问题

主要问题是当点击tab切换fragment时,会出现滑动viewpager的效果,这个滑动效果会影响切换的速度和显示数据的速度,造成卡顿或者切换迟缓的现象,需要在切换的时候将这一句mViewPager.setCurrentItem(j);改成mViewPager.setCurrentItem(j,false);代码如下所示 ctview.setOnClickListener(new OnCl

张小贝的博客 3202

(入门向)在Ubuntu22.04.3安装Matlab2021b,以及无法安装在当前目录下的解决办法(见最后)

还有这个/usr/local是只读状态,我试过sudo chmod..去改那个文件的读,结果还是安装不了,我不是这个默认路径,因为它文件夹还是只读,于是我在matlab2021b下创了一个bin,并选上。输入完成后,依次按y,因为里面有三个文件,他会让你确定3次密码,直接yyy跳过即可。你可能会遇到装不下的情况,这个软件占30g,可是你分配给虚拟机就剩10g。,于是我去Downloads下建了一个matlab2021b文件夹,果然好使,3).此时,会提示你输入密码,因为这个rar是有密码的,

harrype的博客 7293

【PowerHarmony】电鸿蒙学习记录-准备工作

将获取的“PowerHarmony_PHM_SDK_V1.0.1.0.tar.gz”进行解压。将获取的“code_1.91.1-1720564633_amd64.deb”进行解压。打开后可见所有文件夹,即可进行编辑开发,VSCode也可打开终端进行编译等调试。选择主控类型,我是用的是gd32f470,我选gd32f4xx。Open Folder路径选中SDK解压后根目录即可。选择对应系统类型,我的是小型的,我选mini。选好后即完成工程创建。

Allenzhu的博客 2738

使用viewPager时页面中横向滑动不响应viewPager左右滑动

场景例子:        我使用LazyViewPager 里边嵌套了几个Fragment,其中有一个Fragment中是一个上下滑动的RecycleView,这个RecycleView中是多布局实现的,其中有一个布局是左右滑动的,这个时候我们会发现 , 在这个左右滑动布局滑动到最左边或者最右边的时候ViewPager会响应左右滑动事件,现在的需求是手指滑动这个左右滑动布局的时候即使滑动到左右顶

Allen的博客 872

LLC谐振变换器中的软开关艺术:ZVS与ZCS的协同设计

本文深入解析了LLC谐振变换器如何通过巧妙的电路设计,协同实现零电压开关(ZVS)与零电流开关(ZCS),从而大幅降低开关损耗与电磁干扰,提升电源效率。文章结合设计实战,详细阐述了谐振参数计算、器件选型及调试避坑指南,为高效、高功率密度电源设计提供了核心思路与解决方案。

weixin_29216957的博客 353

ViewPager+Fragment实现Tab主界面

毕竟是第一次做项目,所以在每一点上都做得特别认真,接下来我来给大家大致讲述一下用ViewPager+Fragment来实现app Tab主界面,突然想起来LZ居然2天没去上课了......(>.... package com.bob.tabui; import android.support.v4.app.*; import android.os.Bundle; import android.

My life,my way 6526

当兵心理测试软件,当兵心理测试题及答案

心理测试是一种比较先进的测试方法,它是指通过一系列手段,将人的某些心理特征数量化,来衡量个体心理因素水平和个体心理差异差异的一种科学测量方法。小编为你整理了当兵心理测试题及答案,希望对你有所参考帮助。征兵心理测试题(1代表是2代表否)1、我的胃口很好。12、我早上起来的时候,多半觉得睡眠充足,头脑清醒13、我喜欢看报纸上的犯罪新闻。14、有时我常感到困难重重,无法克服。25、我时常遇见一些所谓的专...

weixin_42128393的博客 1万+

AI驱动的研发流程:定义高度专业和系统化的规划基准

在人工智能(AI)浪潮席卷全球的今天,软件研发的范式正经历着一场深刻而迅速的变革。AI技术的渗透,从最初的辅助工具角色,正逐步演变为驱动整个研发流程的核心引擎。传统的研发流程和项目管理方法论,在面对AI带来的高效率、高智能以及高复杂性挑战时,显得力不从心。企业对快速交付高质量软件产品、有效控制风险、并保证全流程可追溯性的需求日益迫切。

形上得其象,形下合于数;阴阳自济,玄理自明。 2182

android自定义动态滚动tab+viewpager+fragment

近来一段时间,项目有点空闲,就总结总结开发中常用的东西,封装封装,提炼提炼,写写博客与大家共勉,有什么不对的或者更好的思路欢迎大家广开言路~~   在android开发中,常见的ui框架中,很经典的一种就是如图所示:   整体是自定义的支持水平滚动的tab+左右滑动viewpager+fragment 入口activity  HorizontalScrollViewTestActiv

haoren_e的专栏 1万+

【Halcon-2D测量】set_metrology_object_param 函数功能(用于配置计量对象常规参数)

HALCON算子 set_metrology_object_param 是2D计量模块的核心配置工具,用于动态修改计量对象的测量区域、边缘检测和几何拟合参数。该算子需在检测前调用,支持批量或单独修改对象参数,包含三类关键参数:测量区域(如长度、间距)、边缘检测(如平滑Sigma、阈值)和几何拟合(如RANSAC阈值、最小分数)。使用时需注意参数互斥规则(如measure_distance优先于num_measures)和多线程同步要求。算子无输出参数,仅修改计量模型内部状态,需配合apply_metrolo

weixin_45590420的博客 295

Android之实现ViewPager+Fragment左右滑动

最近看新闻发现新闻的页面是可以左右滑动的,于是自己就好奇起来了,之前做过ViewPager展示图片,在想怎么加载页面呢?研究了一下,发现就是添加了Fragment,废话不多说,揭秘奥秘的时候到了。 使用过ViewPager小伙伴们都知道,Viewpager加载数据,需要数据源,这里我们定义4个Fragment。为了方便其他同事使用,我给这4个Fragment添加了一个基类,具体代码如下:

SnowWitch的博客 4383

基于Simulink的永磁同步电机三闭环(位置/速度/电流)伺服仿真

本文详细介绍了基于Simulink的永磁同步电机三闭环伺服控制系统的设计与实现,针对机器人关节控制场景。系统采用位置环(外环)、速度环(中环)和电流环(内环)的嵌套结构,通过精确的带宽匹配(电流环1kHz、速度环200Hz、位置环20Hz)实现亚微米级位置跟踪。文中提供了完整的Simulink建模步骤,包括主电路搭建、三环PI控制器实现及坐标变换模块,并验证了系统性能:阶跃响应时间35ms,位置误差<0.05°,正弦跟踪误差<0.15°,负载突加恢复时间0.08s。最后提出了参数自适应整定、前馈

amy_mhd的博客 279

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Android ViewPager与ViewPageIndicator实现Tab导航详解

在Android开发中,Fragment与ViewPager的组合是实现分页导航的核心技术方案。ViewPager通过预加载机制优化页面切换性能,配合FragmentPagerAdapter实现动态内容加载。这种架构特别适合新闻类App的顶部Tab导航场景,既能保证流畅的手势滑动体验,又能灵活定制指示器样式。ViewPageIndicator作为经典扩展库,提供了标题高亮、下划线动画等丰富的交互效果,其原理是通过重写onDraw方法实现自定义绘制。对于需要复杂动效的项目,可以基于ViewPager2生态进行

weixin_34372728的博客 448

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

自定义的带tab的可左右滑动的viewpager之一 简单实现

自己封装的带tab的可左右滑动的viewpager,灵活方便。上部为一个自定义的线性布局,下部为viewpager,点击上部自定义的tab下面的viewpager跟着切换,滑动下部的viewpager,上部的自定义的tab背景也跟着变换。

ttdevs 2918

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

利用ViewPager+Fragment+actionbar实现可左右滑动的Action Tab

1. ViewPager要点: ViewPager 是一个布局管理类(layout manager),用于提供页面的左右滑动功能,类似于ListView,也有为ViewPager提供     数据(Fragment)的 adapter 控制类(FragmentPagerAdapter, FragmentStatePagerAdapter)。ViewPager 经常和 Fragment 一

虾米哥 专栏 2万+

Carson带你学Android:底部/顶部Tab导航栏快速实现-TabLayout+ViewPager+Fragment

前言Android开发中使用顶部 & 底部Tab导航栏的频次非常高,主要的实现手段有以下: TabWidget 隐藏TabWidget,使用RadioGroup和RadioButton FragmentTabHost 5.0以后的TabLayout 最近推出的 Bottom navigation 在上一篇我介绍了如何使用(Fragment+FragmentTabHost++ViewPager) 实

Carson带你学Android 2万+

viewpager左右滑动的 +Tab指示(方式2-------------ViewPager+Fragment+actionbar)

转:http://blog.youkuaiyun.com/tangxuankai/article/details/26759159 1. ViewPager要点: ViewPager 是一个布局管理类(layout manager),用于提供页面的左右滑动功能,类似于ListView,也有为ViewPager提供     数据(Fragment)的 adapter 控制类(Fragment

sunanter的博客 700

ViewPager结合Fragment实现页面左右滑动

之前简单介绍了ViewPager的用法,这里就不多说了。因为ViewPager要结合Fragment,所以activity要继承FragmentActivty,适配器要实现FragmentPagerAdapter, 首先看下activity package com.fei.viewpager.test; import android.annotation.SuppressLint; impor

u010887227的专栏 1161

android fragment 实现tab切换,开源中国Android客户端-使用Tab切换Fragment

一、简述在开源中国客户端中,使用了大量的列表去加载新闻、咨询、博客等等内容,而根据合理的分类,又可以使得这些列表显示的样式保持一致。说明:1)、可以左右滑动切换,更方便。2)、左右切换的时候,不去刷新,采用的是每个页面单独下拉刷新。例如,我的收藏夹: 在我的收藏夹,总共有5个Tab,也可以说需要切换5个视图,这些视图完全一样,只是数据大小不一。1、第一种处理办法:使用5个不同的Fragment添加...

weixin_42234168的博客 1078
上一篇: 二级联动城市选择
下一篇: 自定义的带tab的可左右滑动的viewpager之三fragment之间信息的传递
ttdevs
博客等级 码龄15年 388粉丝 91原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值