Android解决ViewPager嵌套ViewPager中多层Fragment子ViewPager中加载不出来Fragment

ViewPager2+Fragment操作笔记 对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!最后,我再重复一次,如果你想成为一个优秀的 Android 开发人员,请集中精力,对基础和重要的事情做深度研究。对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。整理的这些架构技术希望对Android开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。 阅读详情


最近UI重新设计了一个店铺首页的效果,要用到ViewPager嵌套ViewPager才能实现效果,可是在子ViewPager中出现了加载不出来Fragment,由于里面用了多层的Fragment。

老规矩,先看效果图,没图说个j8。
在这里插入图片描述

先看代码:

首页代码:
在这里插入图片描述
第一层布局代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginTop="-4dp"
    android:background="@drawable/ic_shop_bg2"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="28dp"
        android:layout_marginLeft="@dimen/text_layout_15_dp"
        android:layout_marginRight="@dimen/text_layout_15_dp"
        android:layout_marginTop="25dp"
        android:gravity="center_vertical"
        android:orientation="horizontal">

        <TextView
            android:id="@+id/tv_shop_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="ShopName"
            android:textColor="@color/white"
            android:textSize="@dimen/text_size_16sp"
            android:textStyle="bold" />

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_gravity="right"
            android:gravity="center_vertical"
            android:orientation="horizontal">

            <Button
                android:id="@+id/bt_shop_is_coll"
                android:layout_width="61dp"
                android:layout_height="28dp"
                android:layout_marginRight="@dimen/text_layout_12_dp"
                android:background="@drawable/ic_shop_text_bg"
                android:text="已关注"
                android:textColor="@color/white"
                android:textSize="@dimen/text_size_13_sp" />

            <LinearLayout
                android:layout_width="75dp"
                android:layout_height="28dp"
                android:background="@drawable/ic_shop_text_bg"
                android:gravity="center"
                android:orientation="horizontal">

                <TextView
                    android:id="@+id/tv_shop_other"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:gravity="center_vertical"
                    android:paddingLeft="@dimen/text_layout_5_dp"
                    android:paddingRight="@dimen/text_layout_10_dp"
                    android:text="···"
                    android:textColor="@color/white"
                    android:textSize="@dimen/text_size_20_sp" />

                <View
                    android:layout_width="1dp"
                    android:layout_height="match_parent"
                    android:layout_marginBottom="@dimen/text_layout_5_dp"
                    android:layout_marginTop="@dimen/text_layout_5_dp"
                    android:background="@color/white"
                    android:gravity="center_vertical" />

                <ImageView
                    android:id="@+id/iv_shop_exit"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:gravity="center_vertical"
                    android:paddingLeft="@dimen/text_layout_10_dp"
                    android:paddingRight="@dimen/text_layout_5_dp"
                    android:src="@drawable/ic_shop_exit"
                    android:textSize="@dimen/text_size_15_sp" />
            </LinearLayout>
        </LinearLayout>

    </LinearLayout>

    <com.jkgl.view.NoSlideViewPager
        android:id="@+id/viewPager"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:layout_marginTop="@dimen/text_layout_5_dp"
        />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="@dimen/text_layout_50_dp"
        android:orientation="horizontal"
        android:gravity="center_vertical"
        android:background="@color/white"
        android:paddingLeft="@dimen/text_layout_15_dp"
        android:paddingRight="@dimen/text_layout_15_dp"
        >
        <RelativeLayout
            android:id="@+id/rl_shop_home"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="match_parent"
            android:gravity="center"
            >
            <ImageView
                android:id="@+id/iv_shop_logo"
                android:layout_width="41dp"
                android:
NestedScrollView嵌套viewpager不显示内容的解决方案 阅读详情

相关推荐

性能调优:ViewPager快速切换时卡顿的解决方案——Fragment内容延迟加载

一、需求 公司的客户端项目比较庞大,首页的ViewPager有十几个Fragment,在快速切换的时候,容易产生卡顿现象。 二、分析 当ViewPager切换到当前的Fragment时,Fragment会加载布局并显示内容,如果用户这时快速切换ViewPager,即Fragment需要加载UI内容,而又频繁地切换Fragment,就容易产生卡顿现象(类似在ListView快速滑动

凪のあすから 4954

ViewPager2+Fragment操作笔记(1)

ViewPager2官网介绍ViewPager2官网Samples距离ViewPager2正式版的发布已经一年多了,目前ViewPager早已停止更新,官方鼓励使用ViewPager2替代。ViewPager2底层基于实现,因此可以获得抛弃传统的,统一了Adapter的API;横向、竖向布局都可以实现自由滑动;支持DiffUitl,可以实现局部刷新;支持RTL(right-to-left),对于一些有出海需求的APP非常有用;支持,搭配实现炫酷的跳转动画;ViewPager2更多的是配合。

2401_84132723的博客 1386

Viewpager+fragment数据更新问题

最近做东西发现了一个问题,用viewPager加载Fragment,无法通过notifyDataSetChanged()进行更新,o(╯□╰)o很是郁闷。所以就研究了一番,以下是成果,分享一下 PagerAdapter的工作机制 可以参考一下这篇文章,我也是通过这篇文章得到的启发,在此表示感谢,O(∩_∩)O哈哈~ PagerAdapter主要的工作机制,就是会自动加载,及 卸载view,

shadow066的专栏 1万+

Fragment嵌套显示时,ViewPager内容无法刷新的问题

Fragment嵌套显示时,ViewPager内容无法刷新的问题 在编写简书的主界面时,需要进行多个Fragment的嵌套,比如第一个“发现”的标签里,有 一个主Fragment,期中还分有“文章”和“专题”这两个Fragment,在“文章”中,又分了热门、新上榜等许多小标签,每一个都又是一个Fragment。 之前,我在进行Fragment的切换过程中,使用了getSupportFragmentM

795

在fragment中使用viewpager+fragment时,fragment页面消失的问题

今天要做一个类似知乎首页的tab切换页面,本来以为很容易,因为以前也写过,不过以前都是在activity中写的,一直没遇到什么问题这次换了fragment作为载体之后发现了一个问题在A fragment中使用TabLayout和viwepager 然后再添加三个fragment进去,相当于A fragment里面的再嵌套三个同级的fragment. 出现了第一次滑动全部正常,来回滑动则只有中间的

皮皮鸡的android博客 3702

ViewPager动态指定高度

有时候会遇到这种需求,ViewPager里面几个Fragment,而ViewPager的外面是一个ScrollView,要求可以横滑和竖滑。 由于ScrollView的原因,ViewPager必须设置成warp_content,众所周知,这样是不行的,网上大部分的方法是,复写onMeasure方法,重新测量子view的高度,然后让ViewPager的高度等于子view里面高度最大的那一个。 类似这...

总是很累的泡面头的博客 1847

【Android】ViewPager2动态高度适配:解决Fragment切换时的布局抖动问题

本文深入分析了Android开发中ViewPager2因内部基于RecyclerView的测量机制,导致承载不同高度Fragment时出现布局抖动问题的根源。文章提供了两种核心解决方案:通过监听页面切换动态设置高度,或封装自定义Adapter实现精准高度控制,并给出了详细的代码实现、避坑指南与性能优化建议,有效解决ViewPager2高度自适应难题。

weixin_29232121的博客 275

个人学习笔记--TabLayout+ViewPager加载动态数量的Fragment

最近做项目有遇到这么一个需求,activity嵌套 ViewPager 同时实现与 TabLayout 联动,ViewPager里面是不定数量的 Fragment,每个 Fragment 布局一样数据不一样,里面是  ListView。在网上看了N篇帖子,都跟需求有很大出入,要么就是各种bug。p s:就这么简简单单一个需求竟然没有现成的demo参考,是太简单了都不屑做吗。算了,我还是承认自己菜吧...

L2012W的博客 2482

记录ViewPage+Fragment嵌套ViewPage+Fragment滑动时内部嵌套卡顿的问题和实现Fragment的懒加载

记录ViewPage+Fragment嵌套ViewPage+Fragment滑动时内部嵌套卡顿的问题和实现Fragment的懒加载。

qq_34500783的博客 982

Android TabLayout+ViewPager黄金组合实战指南

TabLayout和ViewPager是Android原生分页导航的核心组件,基于PagerAdapter实现Fragment页面容器与顶部标签栏的双向协同。其原理在于TabLayout负责UI渲染与用户交互,ViewPager承担页面调度与生命周期管理,二者通过setupWithViewPager建立松耦合绑定。该方案具备零第三方依赖、全版本兼容、调试友好等技术价值,广泛应用于电商详情页、教育App模块切换、政务平台多栏目等场景。相比ViewPager2需自行实现Tab逻辑,或BottomNavigati

dianjiaxian1205的博客 338

Fragment可见性监听方案,多种case完美兼容

Hide 和 Show 操作==========================================================================Hide 和 show 操作,会促发生命周期的回调,但是 hide 和show 操作并不会,那么我们可以通过什么方法来监听呢?其实很简单,可以通过 onHiddenChanged 方法。/*** 调用 fragment show hide 的时候回调用这个方法*/override fun onHiddenChanged(hidden:

2401_84408337的博客 831

Android TabLayout + ViewPager2 导航实现与避坑指南

TabLayout 和 ViewPager2 是 Android 中实现标签式页面导航的基础组件,属于 Fragment 容器与 UI 指示器协同工作的典型范式。其核心原理是通过声明式绑定(setupWithViewPager)自动同步页面滑动与标签选中状态,避免手动监听导致的线程调度和生命周期错乱问题。技术价值在于轻量、稳定、低学习成本,且深度集成 AndroidX 生命周期管理,显著降低 Fragment 重建丢失、状态不同步等高频崩溃风险。广泛应用于新闻、电商、工具类 App 的顶部多标签页场景,尤其

440

Android入门第61天-Fragment嵌套Fragment的用法

Fragment嵌套可以构成各种复杂的组件、布局。但是在其使用时经常会面临各种“坑 ”,特别是嵌套Fragment在有些开发机、真机上可以显示而换到另一台开发机、真机上就不能显示并且还会抛出或者干脆不抛Exception也不显示Fragment中内容的坑,本文教给大家正确的Fragment嵌套的调用返回的用法。

打造全国最全的AI Agent开发知识领域的博客 2699

fragment嵌套viewpager不显示

底部用RadioGroup控制fragment的切换。以上有五个fragment。 第一个fragment,代表着首页。首页又是一个类似tab的fragment,使用viewpager切换着两个fragment。    private void InitViewPager(View parentView) {        mPager = (ViewPager) parentView.fi...

知道的越多,不知道的越多。 928

Imputation Methods for scRNA Sequencing Data

越来越多的研究者使用单细胞RNA测序(scRNA-seq)技术来表征单细胞水平的转录图谱。他们用它来研究复杂组织的异质性、转录组动力学和未知生物的多样性。然而,在基因表达模式随机性的scRNA-seq数据中普遍存在许多技术和生物学上的噪音。这些数据通常具有高维、稀疏和大量“dropout”值的特点,并且受批处理效应的影响。scRNA-seq数据中大量的“dropout”值严重掩盖了基因之间的重要关系,阻碍了下游分析。因此,scRNA-seq数据dropout值的估算就显得尤为重要。

qq_34179307的博客 542

Python RK3588 MPP 8路视频硬解码!全体目光向我看齐!

本文重写了官方demo、加入了Zlmediakit进行拉流并通过pybind11将代码封装成so库,现在,在python中直接通过import的方式,就能完成基础的拉流解码操作,目前支持8路拉流解码!!!

m0_46303486的博客 4880

Silvaco TCAD仿真例库——肖特基二极管反向击穿特性(案例)

本文详细解析了使用Silvaco TCAD仿真例库进行肖特基二极管反向击穿特性分析的完整案例。通过构建包含浮空P型保护环的平面结构,重点阐述了针对雪崩击穿仿真的关键步骤,包括高精度网格划分、碰撞电离模型(impact selb)的启用以及反向电压的精细扫描策略。文章深入探讨了漂移区掺杂浓度、保护环设计等参数对击穿电压的影响,并提供了实用的调试心得,旨在帮助工程师精准预测和优化功率肖特基二极管的反向耐压能力。

fire9的博客 724

深度学习十大算法之Word2Vec

Word2Vec的提出,标志着词嵌入技术的一次重大进步。Word2Vec是一种高效的词嵌入模型,由Google的研究团队于2013年开发。它使用一种称为神经网络的机器学习方法,通过学习大量文本数据,生成能够表达词语间丰富语义关系的词向量。Word2Vec的核心优势在于它能够捕捉到词语之间的细微关系。例如,在Word2Vec模型中,可以通过计算向量之间的距离来估计词语之间的相似度。这不仅能帮助理解语言的复杂性,还可以应用于各种NLP任务,如机器翻译和搜索引擎优化。

第欧根尼的酒桶的博客 1866

Python爬虫实战:使用最新技术抓取百度贴吧帖子内容

本文详细介绍了使用Python最新技术抓取百度贴吧帖子的完整流程。通过库,我们实现了高效的异步爬虫,具备JavaScript渲染、智能反爬应对、数据持久化等高级功能。这个爬虫框架具有良好的扩展性,可以根据具体需求进行功能增强。

2201_76125261的博客 779

Autosar EcuM配置-初始化及下电执行函数-基于ETAS软件

Autosar EcuM学习笔记-上电初始化执行函数及下电前执行函数,本文介绍在EcuM中的配置及使用。

赞的博客 850

【雕爷学编程】Arduino FOC 之 AS5600 磁编码器的模拟电压与IIC通信

在Arduino平台上实现FOC可以提供平滑的运行和高度的扭矩、速度和位置控制,它通过精确控制电机的电流和电压来实现高效率、高精度和低噪声的操作。案例三在使用I2C通信读取角度值的基础上,添加了设置角度范围的功能。5、创新:Arduino可以让你用电子的方式来表达你的创意和想象,你可以用Arduino来制作各种有趣和有用的项目,如机器人、智能家居、艺术装置等。1、高性能电机控制:FOC是一种高级的电机控制算法,可以精准控制PMSM(永磁同步电机)和BLDC(无刷直流)电机,实现平滑的转速和扭矩输出。

雕爷学编程 1500

SAP Fiori 个性化数据持久化实战:从 Personalizer 到 Variant 的完整设计思路

摘要:SAPUI5的Personalization服务用于持久化用户界面交互偏好(如表格列顺序、筛选条件),而非业务数据。它提供两种模式:Direct Mode适合单一实体存储,Container Mode支持多实体和变体管理。开发时需注意数据存储位置差异(本地调试用local storage,生产环境由前端服务器处理),避免与业务数据或Bookmark服务混淆。典型应用场景包括表格布局保存和查询方案管理,需根据需求选择模式。该服务能有效提升Fiori应用的用户体验连续性。

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

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

上一篇: Android studio中完美解决找不到HttpClient类
下一篇: Android商品规格流式布局运用RecyclerView实现显示和点击效果
codekxx
博客等级 码龄11年 36粉丝 89原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值