【问题标题】:How to prevent recreation of a Fragment when an item in NavgiagtionDrawer is pressed按下 NavgiagtionDrawer 中的项目时如何防止重新创建片段
【发布时间】:2015-01-21 08:12:13
【问题描述】:

我与navigationDrawer 有一个主要活动,navigationDrawer 中的每个项目在单击时都会显示其各自的片段。当navigationDrawer 中的任何项目被按下时,我意识到,片段被重新创建,或者换句话说,当我在navigationdrawer 中选择一个项目时,片段通过onCreateView,'onactivtyCreated',@987654326 @和onPause

我的问题是,当NavigationDrawer 中的项目被按下时,有什么方法可以防止片段的重新创建?

【问题讨论】:

  • 没有看到你的代码很难推断出那里实际发生了什么
  • 你如何处理onClick?你使用 FragmentTransaction.replace 吗?
  • @JordiSipkens 是的,我使用 transaction.replace
  • 我总是使用 .add 和 .hide(currentFragment)。这不会从头开始重建片段。如果片段已经创建,它将恢复。

标签: android android-fragments android-listview navigation-drawer


【解决方案1】:

您可以添加一个局部变量来保存当前选定的片段索引。 单击导航抽屉项目时,只需检查所选项目是否是您当前的片段。在伪代码中类似于:

void itemClicked(int pos) {
    if (pos != currentFragmentIndex {
        . . . initialize fragment
        currentFragmentIndex = pos
    }
}

【讨论】:

    猜你喜欢
    • 2019-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-31
    相关资源
    最近更新 更多