【问题标题】:Is this a good way of detecting the current active fragment?这是检测当前活动片段的好方法吗?
【发布时间】:2021-02-10 00:05:32
【问题描述】:

我目前正在尝试在 onResume() 方法中确定哪个片段是当前活动片段。

我目前基于目标 ID 进行检测。下载该应用的每个人的 ID 是否都相同,还是随机生成的数字?

我如何获得 ID:

Navigation.findNavController(getView()).getCurrentDestination().getId()

我是如何使用它的:

 if (Navigation.findNavController(getView()).getCurrentDestination().getId() == 2131296382){
                Log.w("Navigation", "The current fragment is the chat fragment");
}

【问题讨论】:

  • 通过了解当前可见片段,您究竟想对信息做什么

标签: android android-fragments android-navigation android-jetpack-navigation android-navigation-graph


【解决方案1】:

这是仅使用数字进行操作的非常糟糕的方法 - 在您的情况下是整数 id,称为“幻数”。

下载应用程序的每个人的 ID 是否都相同

资源ID在所有设备上都是相同的,具有相同版本的应用程序,不同版本可能具有不同的资源ID,因为它们是在构建期间生成的代码。

如果您想使用资源 id 进行操作,您需要通过引用从 R.java 类中获取它们。所有资源 ID 在 R.java 类中都可用。在您的情况下,R.id. 来自您的 navigation.xml。更多关于资源 id 的信息在这里https://developer.android.com/guide/topics/resources/providing-resources

【讨论】:

    猜你喜欢
    • 2012-10-06
    • 1970-01-01
    • 1970-01-01
    • 2011-08-13
    • 1970-01-01
    • 2015-11-24
    • 1970-01-01
    • 1970-01-01
    • 2017-07-13
    相关资源
    最近更新 更多