代码之家  ›  专栏  ›  技术社区  ›  Carel

在使用Android导航组件时,在backbackback上列出片段

  •  0
  • Carel  · 技术社区  · 7 年前

    我正在试着调试一些代码,并希望在Android中列出当前backstack中的片段。库存解决方案是简单地从支持管理器中列出它们,因此从 方法 活动 :

    Log.i("fragments","Count : " + supportFragmentManager.fragments.toString())
    

    ... I/fragments: [NavHostFragment{b1a2d20 (f8ec2420-b534-42df-89f0-0cb189610a26) id=0x7f080001}]
    

    一些答案是如此。 Sergii Suvorov 提供以下替代方案:

    Log.i("fragments","Count : " + supportFragmentManager.findFragmentById(R.id.NAVIGATION)?.childFragmentManager?.fragments.toString())
    

    对我来说只返回null

    ... I/fragments: null
    

    方法 片段 我可以打以下电话

    Log.i("fragments", fragmentManager?.fragments.toString())
    

    它确实返回了期望的结果

    ... I/fragments: [FirstFragment{1475645 (3bb8566b-22b0-4c98-82ea-566e18915145) id=0x7f080001}]
    

    我不知道如何从活动中做到这一点,也许有人知道魔法咒语?

    0 回复  |  直到 7 年前