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

STM32平台下FreeModbus TCP协议栈集成指南

深入讲解在STM32平台如何移植和配置freemodbus协议栈,实现TCP通信功能。结合嵌入式开发细节,帮助开发者快速掌握freemodbus的应用与调试技巧。

weixin_36001279的博客 1144

基于 parallels ubuntu 20.04 LTS (focal) 的ros+px4+gazebo 安装

基于 parallels ubuntu 20.04 LTS (focal) 的ros+px4+gazebo 安装。

weixin_40132006的博客 2241

Python+Selenium实现抖音博主批量监控:300+账号实时更新通知(附完整代码)

本文详细介绍了如何使用Python和Selenium构建一个高可用的抖音博主批量监控系统。通过架构设计、Cookie管理、高效轮询与差异检测等核心模块,实现300+账号的实时更新追踪与通知。文章提供了完整的代码实现,并重点探讨了性能优化、异常处理及服务器部署等实战经验,帮助开发者打造稳定、可控的自动化监控解决方案。

weixin_29274969的博客 196

Uniapp-APP后台保活插件(安卓后台保活)

Uniapp-APP后台保活插件(安卓后台保活)亲测有效!

weixin_57844432的博客 1万+

CDO批量处理nc文件:5分钟搞定CMIP6数据双线性插值(附完整代码)

本文详细介绍了如何使用CDO工具链中的`remapbil`命令,快速实现CMIP6数据的批量双线性插值处理。通过环境配置、核心操作步骤、高级优化技巧及典型报错解决方案,帮助科研人员高效处理大规模nc文件,显著提升气象数据处理效率。

weixin_29267307的博客 293

告别GPS,用Sentinel-1数据+Python实战SBAS-InSAR监测城市地面沉降(保姆级教程)

本文详细介绍了如何利用Sentinel-1数据和Python实现SBAS-InSAR技术监测城市地面沉降。通过保姆级教程,从环境配置、数据获取到干涉处理、时序分析和形变反演,逐步解析全流程技术细节,帮助读者掌握毫米级精度的形变监测方法,并以上海陆家嘴区域为例展示实际应用效果。

weixin_32771907的博客 536

深入解析基于Fluent的蒸发冷凝相变UDF程序及其在重力热管液体蒸发冷凝变化计算中的应用

ANSYS Fluent是一款功能强大的CFD软件,广泛应用于流体流动、传热、化学反应和多相流等领域的数值模拟。Fluent提供了丰富的物理模型和求解器,支持用户自定义函数(UDF)以扩展其功能,实现更为复杂和特定的模拟需求。UDF是用C语言编写的程序,允许用户在Fluent中自定义物理模型、边界条件、源项等,以实现特定的模拟需求。在处理复杂的相变过程、非均匀物性参数或特定的热传导机制时,UDF提供了极大的灵活性和扩展性。

qq_38334677的博客 1265

JavaScript高级程序设计

作者:禅与计算机程序设计艺术 1.简介 JavaScript(简称JS)是一种直截了当、简单易用的动态脚本语言。它最初由Netscape公司的Brendan Eich(布兰登·艾奇)于1995年创建,但后来逐渐成为事实上的通用编程语言。目前,JS已经成为世界上最流行的客户端脚本语言,广泛用于网页开发、移

AI天才研究院 2268

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

efm32 入门.pdf

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

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

上一篇: 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、付费专栏及课程。

余额充值