Android NavController错误“没有当前导航代码”

我的布局文件显示了商店列表(请参见屏幕截图)。

Android NavController错误“没有当前导航代码”

我已经在布局文件中使用数据绑定设置了点击监听器,如下所示:

android:onClick="@{() -> storeCallback.onStoreclick(store)}"

在我的片段中,我定义了这样的类:

class Storeclick(val block: (StoreModel) -> Unit) {
    /**
     * Called when a store is clicked
     *
     * @param store the store that was clicked
     */
    fun onStoreclick(store: StoreModel) = block(store)
}

我正在像这样在适配器中调用它:

Storeclick {
        // When a store is clicked this block or lambda will be called by MyAdapter
        val action =
                MyFragmentDirections.actionHomeToStoreDetailFragment(it.storeID)
        findNavController().navigate(action)
    })

在配置更改之前,一切正常。但是, 旋转设备并单击适配器中的存储项目后,应用由于findNavController而崩溃,并出现以下错误:

  

没有当前导航代码

有什么想法吗?

更新:我在AOSP here中检测到错误。但是,目前尚不清楚这种情况下发生了什么。

rabbitanddog 回答:Android NavController错误“没有当前导航代码”

对于任何有兴趣的人,我都解决了这个问题。 Android Studio Canary中的Lint告诉我在NavHost活动xml布局中使用 FragmentContainerView 而不是Fragment。这就是导致问题的原因。一旦将NavGraph的封闭标签更改回Fragment,它就会起作用: enter image description here

本文链接:https://www.f2er.com/3142271.html

大家都在问