Android TabLayout一旦切换fragment就不再显示内容

2023-11-21

我在我的项目中使用导航抽屉,其中有 5 个片段。在一个片段中,我在设计支持库中引入了 TabLayout,其中包括 2 个片段。一切正常,除了当我离开具有 TabLayout 的片段并切换回它时,所有内容都消失了。

在 TabLayout 中的每个片段中,我都有一个带有 ListView 的 SwipeRefreshLayout ,它们在切换时都不会显示任何内容。

我还注意到 TabLayout 开始表现得很奇怪。奇怪的是我的意思是白色指示器开始跳跃,你可以将它保持在两个选项卡的中间......

那么我是否遗漏了一些 TabLayout 行为如此奇怪的东西?

代码在这里: 包含 TabLayout 的片段:

public class MainFragment extends Fragment {
    private static String locale;
    private static ViewPager viewPager;
    private static TabLayout tabLayout;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        Utils.changeLanguage(getActivity());

        final Context contextThemeWrapper = new ContextThemeWrapper(getActivity(), R.style.MyStyle);

        LayoutInflater localInflater = inflater.cloneInContext(contextThemeWrapper);

        View view = localInflater.inflate(R.layout.fragment1, container, false);

        viewPager = (ViewPager) view.findViewById(R.id.viewpager);
        tabLayout = (TabLayout) view.findViewById(R.id.tabs);

        return view;
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        setupViewPager(viewPager);
        tabLayout.setupWithViewPager(viewPager);
    }

    private void setupViewPager(ViewPager viewPager) {
        LinesTabsAdapter adapter = new LinesTabsAdapter(getActivity().getSupportFragmentManager());
        adapter.addFragment(new Fragment1(), "Fragment 1");
        adapter.addFragment(new Fragment2(), "Fragment2");
        viewPager.setAdapter(adapter);
    }


    public static class Fragment extends Fragment {
        private static List<RowItems1> rowItems;
        private static ListView listview;
        private static Adapter1 adapter;

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

            View view = inflater.inflate(R.layout.activity1, container, false);

            listview = (ListView) view.findViewById(R.id.listview1);

            return view;
        }

        @Override
        public void onActivityCreated(Bundle savedInstanceState) {
            super.onActivityCreated(savedInstanceState);

            updateInfo(true);
        }

        public static void updateInfo() {
            rowItems = new ArrayList<>();
            adapter = new Adapter1(context, rowItems);
           listview.setAdapter(adapter);
        }
    }

    public static class Fragment2 extends Fragment {
        private static List<RowItems2> rowItems;
        private static ListView listview;
        private static Adapter1 adapter;

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

            View view = inflater.inflate(R.layout.activity_lines_all, container, false);

            listview = (ListView) view.findViewById(R.id.activity2);

            return view;
        }

        @Override
        public void onActivityCreated(Bundle savedInstanceState) {
            super.onActivityCreated(savedInstanceState);

            updateInfo(true);
        }

        public static void updateInfo() {
            rowItems = new ArrayList<>();
            adapter = new Adapter2(context, rowItems);
            listview.setAdapter(adapter);
        }
    }
}

我将 MainFragment 用作单例,并在用户在导航抽屉中选择它后立即用它替换内容。当我切换到它时,一切正常,ListView 包含其数据,SwipeRefreshLayout 工作正常。当我使用导航抽屉切换到另一个片段并切换回此片段时,它不会显示任何内容,如上所述。

编辑:我是唯一遇到此问题的人吗?如果有人遇到问题,他们是如何解决的?


当我使用 viewPager 并返回时,我有空片段,直到我使用时切换getSupportFragmentManager.

尝试使用:getChildFragmentManager.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android TabLayout一旦切换fragment就不再显示内容 的相关文章

  • 初始化Object中的空字符串?

    有人使用以下方法来初始化 NSstring NSString astring NSString alloc init 我想知道为什么不直接使用 NSString atring nil or NSString astring 没有semant
  • 通知管道右侧左侧故障?

    我越来越喜欢在 shell 脚本中的函数之间使用类似于生成器的模式 像这样的事情 parse commands da cmd file process commands 然而 这种模式的基本问题是 如果 parse command 遇到错误
  • Aurelia - click.delegate 错误 - 说该函数不是函数

    Novice 我有一个视图模型 它有一个简单地切换值的函数 import autoinject from aurelia framework import bindable from aurelia templating import Lo
  • Mercurial:移植、记录、qrecord、搁置、移植、dirstate、队列

    我是 Mercurial 的新手 并且仍处于评估过程中 因此这四个概念对我来说有点令人困惑 有些被认为相当于 Git 的 Staging Index 概念 有些甚至比 Git 的 Staging 更好 四个命令怎么做hg graft hg
  • SQL Server 列的默认随机 10 个字符串值

    我有一个专栏rndm在我的桌子上 客人 现在 对于领域Default value or Binding对于表 每当插入新行时 我想自动将 10 个字符的随机字符串插入到该列中作为默认值 该随机字符串不能包含特殊字符 只能包含以下字符a zA
  • 将二进制长字符串转换为十六进制 C#

    我正在寻找一种将长二进制字符串转换为十六进制字符串的方法 二进制字符串看起来像这样 0110011010010111001001110101011100110100001101101000011001010110001101101011 我
  • 如何使用 ROR 设置控制器页面内的文本区域属性[重复]

    这个问题在这里已经有答案了 任何人都可以解决我的小问题吗 实际上我想在页面加载并检查某些条件后设置文本区域启用 让我来解释一下我的故事实际上是我想要的 Story 我有一个博客页面 当用户登录并进入博客页面时 应该启用文本区域来发表评论 如
  • android-如何在谷歌地图上将标记的位置显示为地址

    我已经尝试过 commonsware googlemapsv2 教程 特别是在地图上拖动标记 但现在另一个问题困扰着我 问题是如何将标记的当前位置显示为地图下方或上方的地址 字符串 这是我使用的代码 public class MainAct
  • Scala:如何获取数据框中的行范围

    我有一个DataFrame通过运行创建sqlContext readParquet 文件的一个 The DataFrame由 300 M 行组成 我需要使用这些行作为另一个函数的输入 但我想以较小的批次进行操作 以防止 OOM 错误 目前
  • 将redis数据移至MySQL的更快方法

    我们拥有庞大的购物和产品交易系统 我们在 MySQL 方面遇到了很多问题 因此经过几次研发后 我们计划使用 Redis 并开始将 Redis 集成到我们的系统中 继之前直接访问数据库之后 现在我们已经移动了Redis系统 用户购物车详情 关
  • Android 中带有无尽列表视图滚动的 AsyncTask

    我正在创建一个应用程序 其中我需要有无限的滚动列表视图 我不想在我的应用程序中使用任何库 我在网上看到了一些有助于实现此类列表视图的示例 但我的疑问是 当我的数据来自服务器并在异步任务中进行解析时 如何才能拥有无尽的列表视图 如何从滚动异步
  • 为什么用字符串和时间增量转置 DataFrame 会转换数据类型?

    这种行为对我来说似乎很奇怪 id列 字符串 在转置后转换为时间戳df如果另一列是时间增量 import pandas as pd df pd DataFrame id 00115 01222 32333 val 12 14 170 df v
  • 在启动屏幕中执行代码已更新

    在原始启动屏幕中执行代码 https stackoverflow com questions 27642016 execute code in launch screen 现在默认的LaunchScreenXcode 项目中的文件已更改为
  • 如何在reactJS中将一个页面重定向到另一个页面?

    App js 这是按钮点击事件处理 this handleClick this handleClick bind this handleClick e debugger e preventDefault this context route
  • 将 firebase 消息传递添加到 flutter android 项目时出现依赖错误

    我已将 firebase 消息传递添加到我的 Flutter 项目中 在 iOS 上运行良好 在 Android 上运行时出现错误 Android dependency androidx localbroadcastmanager loca
  • 生成签名和加密的 JWT

    我正在尝试使用生成签名和加密的 JWT 令牌雨云智威汤逊 http connect2id com products nimbus jose jwt private void generateToken throws JOSEExceptio
  • Nodejs Express css和js未加载

    我在nodejs上使用express 我加载的 html 文件没有获取 java 脚本和 css 文件 索引 html
  • 如何在 Swift 中将所有 iOS 设备的标签水平居中

    我不知道如何使标签在图像视图中水平居中 标签说 You ve been here What would you rate us 我想要What would you rate us属于 You ve been here 我试图完成此操作的方法
  • Google Apps 脚本 - 脚本之间的通信

    Hi我的问题如下 我想创建一个小网页 在该网页上可以在 Google 日历中创建事件 但有一些限制 就我而言 我的室友可以编辑此日历来预订洗衣机 该预订不能重叠 而且我们所有人的使用天数都是有限的 我创造了私人日历 我已经创建了验证请求的脚
  • 独立值不会出现在 moxy - jaxb 生成的 xml 中

    我有一个使用 jaxb 的 moxy 实现生成的 xml 文件 但是独立值不会出现在 xml 文档中 Note 我是EclipseLink JAXB MOXy http www eclipse org eclipselink moxy ph

随机推荐

  • 如何将隐藏字段中的数据从一个jsp页面传递到另一个jsp页面?

    我在 jsp 页面的隐藏字段中有一些数据
  • 如何向 Visual Studio 添加自定义 HTML 标签并避免出现波浪线

    我正在使用 Visual Studio 2013 创建原始 HTML 页面 即index html 在我的 HTML 中 我正在实现自定义 HTML 标签 因此 Visual Studio 用波浪线强调我的自定义标记 由于 未知元素 的警告
  • 如何在 vb.net 中处理表单关闭事件

    我使用了下面的代码 但它没有显示消息框 这段代码有什么问题 Private Sub frmSimple Disposed ByVal sender As Object ByVal e As System EventArgs Handles
  • 实体框架代码优先 - DbContext 上没有 Detach() 方法

    我想知道为什么 DbContext 对象上没有像 ObjectContext 那样的 Detach 方法 我只能假设这种遗漏是故意的 但我很难弄清楚为什么 我需要能够分离和重新附加实体 例如 将缓存放入 ASP NET 项目中 但是 由于我
  • 使用 Selenium 创建并执行 Javascript 函数

    我正在尝试使用 Selenium 创建并执行 JavaScript 函数 我这样做是这样的 js func function blah a b c self selenium execute script js script self se
  • iOS 5.1 : -[UIColor colorWithPatternImage:] 背景颜色绘制纯黑色

    在今天发布的 iOS 5 1 GM 中测试我的应用程序时 我注意到我的一些视图绘制的是纯黑色而不是图案背景色 完全相同的代码在以前的 iOS 版本上运行良好 在 4 2 5 0 1 上测试 See screenshots 还有其他人经历过这
  • 使用 AngularJs 中的 Expression 动态生成 ng-class 变量

    这是我的 HTML 代码的片段 div div boxName div div 我正在尝试做的事情 我使用上面编写的代码片段创建了 3 个 div 元素 它们将位于屏幕顶部 每个 div 元素将使用 css 赋予一个盒子的形状 框 div
  • 将 string 转换为 int 太慢

    我有一个程序 每行读取 3 个字符串 共 50000 个 然后它会执行其他操作 读取文件并转换为整数的部分占用了总运行时间的 80 我的代码片段如下 import time file open E temp edges big txt re
  • 升级pip后DistributionNotFound错误

    在阅读有关 virtualenv 的内容时here我意识到我没有 pip 1 3 所以我跑了pip install upgrade pip现在当我跑步时pip version我得到以下信息 Traceback most recent cal
  • 重复异步任务

    我对在 Android 应用程序中重复 AsyncTask 的可能性有疑问 我想重复一些操作 例如从服务器下载文件 如果由于某种原因无法下载该文件 则重复n次 有一种快速的方法可以做到这一点吗 您不能重复执行 AsyncTaskbut您可以
  • navigator.onLine 在我的手机上无法使用。如何检查互联网是否在线。离线???电话间隙

    我正在为我的应用程序使用phonegap 我的应用程序基本上用于来自一个网站的 RSS 提要 但我的要求是当没有互联网时应用程序应该alert offline 当应用程序在线运行时 所有数据都存储到数据库中 当互联网不存在时 数据会从数据库
  • 此处不允许使用 Maven Jetty 插件守护进程元素

    我正在尝试配置项目的 pom xml 文件 我希望它在测试阶段启动 Jetty 服务器 为了做到这一点 我应该将 daemon 元素添加到 Jetty 插件中 如下所示 但 IntelliJ 警告我 此处不允许使用 Element daem
  • Python Marshmallow Field 可以是两种不同的类型

    我想指定一个棉花糖模式 对于我的一个字段 我希望对其进行验证 但它可以是字符串或字符串列表 我尝试过原始字段类型 但这允许一切通过 有没有办法只验证我想要的两种类型 就像是 value fields Str or fields List 我
  • PHP 扩展未在 phpinfo 中加载

    所以我在 Mountain Lion 上运行 MAMP 并使用 pecl 安装了 gmagick 和 imagick 两者都是 relase 候选者 主要是因为 gmagick 没有稳定的版本并且 imagick 3 0 0 没有安装 它给
  • 公共功能与公共时段

    在我一年的 Qt 编程中 我学到了很多关于信号和槽的知识 但还不够 http doc qt io qt 5 signalsandslots html 插槽可以用来接收信号 但也是正常的 成员函数 那么 有什么理由不声明继承自的类中的每个函数
  • dartlang中的double.toStringAsFixed和toStringAsPrecision有什么区别?

    我想知道这两种方法有什么区别 我想toStringAsFixed修剪数字 但从 doc 中的示例来看 两者都对数字进行四舍五入 这是相关问题 https github com dart lang sdk issues 25947 1 Dou
  • 如何在 Xcode 4 中进行代码设计和沙箱助手应用程序?

    这就是问题 我有一个包含 HelperApp 的 MainApp Helper 应用程序用于登录项 因此我需要区分 MainApp 和 HelperApp 捆绑 ID 感谢 BuildPhase Copy 我将 HelperApp 复制到
  • X11 鼠标移动事件

    在 XLib 中创建窗口时 我提供给大家的口罩有哪些SetWindowAttributes event mask成员 我必须将什么传递给第 11 个参数XCreateWindow 我在主消息循环中寻找的事件是什么 我使用的地方XNextEv
  • 如何将 WSDL 文件转换为类文件

    我有一个 WSDL 文件 我想将 wsdl 文件转换为 Web 服务类文件 是否可以 如果是的话请详细地向我解释一下 在解决方案资源管理器中右键单击 您的项目并转到 添加服务 参考 按窗口底部的 高级 按窗口底部的 添加 Web 引用 在
  • Android TabLayout一旦切换fragment就不再显示内容

    我在我的项目中使用导航抽屉 其中有 5 个片段 在一个片段中 我在设计支持库中引入了 TabLayout 其中包括 2 个片段 一切正常 除了当我离开具有 TabLayout 的片段并切换回它时 所有内容都消失了 在 TabLayout 中