当前位置: 首页 > 知识库问答 >
问题:

强制Android在标签更改上摧毁碎片?(viewpager的生命周期)

任飞龙
2023-03-14

我的应用程序中有两个选项卡,其中有两个recycerview,当我单击第一个选项卡中的一个项时,它会向第二个选项卡添加一个项(下载链接到下载管理器),但用户直到片段ondestroyoncreate(旋转,退出,转到第三个选项卡)才能看到更改,我认为这是因为viewpager中的片段Lifecycle保留了前一个选项卡。

我怎样才能强制android在标签更改上摧毁碎片?我甚至尝试了setonpagechangelistener使用接口,但它对我不起作用,可能是因为getitem只在片段创建上运行?

共有1个答案

秦博延
2023-03-14

您不应该在onCreate()中填充列表,而应该在onResume()中填充列表。遵循Android活动生命周期,一旦您的活动/片段处于非活动状态,就调用onPause(),而一旦您返回到该活动/片段,就调用onResume()。因此,如果您在另一个选项卡中并切换到第二个选项卡,将调用onResume(),您可以从那里创建列表-不需要销毁vieiw。

您可以在这里阅读更多关于活动生命周期的信息:https://developer.android.com/reference/android/app/activity.html#activityLifecycle

 类似资料:
  • 我有一个mainActivity承载一个ViewPager并包含三个选项卡(MQTT、ECO、Logger)。mainActivity具有生命周期回调(onCreat,onResume),其他三个选项卡具有片段的生命周期回调(onattached,onCreateView,onViewcreated,onResume,onPause)。 在运行时,我在logCat中收到以下信息: 当我从日志记录选

  • 每当一个片段显示给用户时,我需要执行一些代码。 通过查看API,我能看到的最接近的钩子方法是onResume。但是,从我的代码调试来看,当用户选择back-button返回到先前显示的片段时,似乎没有调用onResume。 为了澄清我看到的行为: 我有一个“parent”活动,它在ActionBar中配置选项卡...和2个片段F1和F2。 用户选择一个选项卡,F1被加载到活动中。按下按钮,用户就可

  • 一个较长的生命周期可以强制转成一个较短的生命周期,使它在一个通常情况下不能工作的作用域内也能正常工作。这种形式出现在编译器推导强制转换的时候,也出现在声明生命周期不同的时候(原文:This comes in the form of inferred coercion by the Rust compiler, and also in the form of declaring a lifetime

  • 我有一个显示列表的导航抽屉和一个显示内容的视页。当单击导航抽屉上列表中的特定项目时,将为所有页面生成一个URL,该URL将导致视图分页程序内容的更改。导航抽屉和查看页处于相同的活动中。view pager中的片段具有从服务器检索内容的URL。我怎样才能找到它? 下面是一些代码: 查看页有三页。适配器如下: 这些页面都有一个URL字段,用于从包含数据的服务器中提取json。所以简而言之,问题是当导航

  • 问题内容: 我在使用键绑定来更改标签或任何参数的值时遇到麻烦。这是我的代码: 运行此命令时,我单击输入框并按Enter,希望标签将值更改为“更改值”。但是,尽管它确实打印了该文本,但标签保持不变。 通过查看关于类似问题的其他问题,我发现了如何在课堂外使用其中的一些功能,但是在课堂上进行操作时遇到了一些困难。 另外,顺便提一下,“主人”在tkinter中扮演什么角色? 问题答案: 上面的句子使lab

  • 我正在尝试在我现有的应用程序中使用Jetpack的架构组件实现导航。 我有一个单一的活动应用程序,其中主要片段(。因此,当按下back时,将分离细节片段,并再次显示ListFragment。 对于导航架构,这是自动处理的。不是添加它被替换的新片段,因此片段视图被销毁,而是在按下back以重新创建视图时调用和。 我知道这是一个很好的模式,用于LiveData和ViewModel,以避免使用超过必要的