Android 导航组件:从 nav_graph.xml 添加目的地时,片段在下拉列表中不可见

Android Navigation Component: Fragments are not visible in drop down list when adding destination from nav_graph.xml

当我尝试添加目的地时单击 "New destination" 按钮,从下拉列表中我看不到项目中已有的任何片段。

当我尝试通过单击下拉列表中的 "Create a blank destination" 选项添加空白片段时,我也遇到了这个问题。

我尝试重新启动 IDE 和 ,但这并没有解决我的问题。

导航依赖:实现"androidx.navigation:navigation-fragment:1.0.0-rc02"

我的项目已经迁移到 AndroidX。

我错过了什么吗?任何帮助将不胜感激。

Gradle 依赖:

def nav_version = "1.0.0-rc02"

implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.1.0-alpha02'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'com.google.android.material:material:1.0.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.2-alpha02'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0-alpha02'
implementation 'androidx.cardview:cardview:1.0.0'

implementation "android.arch.navigation:navigation-fragment:$nav_version"

我遇到了同样的问题。 只需使用这些依赖项。

//Android Navigation Architecture
    implementation "androidx.navigation:navigation-fragment-ktx:2.1.0-alpha05"
    implementation "androidx.navigation:navigation-ui-ktx:2.1.0-alpha05"

我也遇到了完全相同的问题,我使用的是旧版本的库(1.0.0-alpha05)

但是我一切换到

implementation "android.arch.navigation:navigation-fragment-ktx:1.0.0"
implementation "android.arch.navigation:navigation-ui-ktx:1.0.0"

其他片段开始出现!

即使是 2.2.1 版本我也面临这个问题。我通过在 XML 代码中添加片段解决了这个问题。然后我可以从可视化编辑器添加动作。

示例:

<fragment
    android:id="@+id/test"
    android:name="com.example.test.ui.test.TestFragment"
    android:label="Test Label"
    tools:layout="@layout/fragment_test"/>

有时片段不会显示在图表中,因为 classes 还没有为它们制作。在 class 中调用 onViewCreate 后,在返回正确的充气器时,它们会显示在图表中。

我刚刚构建并 运行 项目一次。然后 Fragments 作为目的地出现在 NavGraph 的 Fragments 列表中。

我遇到了同样的问题,我通过简单地检查 kotlin 版本的高级构建-gradle 解决了它,如果您最近更新了 kotlin 插件但没有更新代码,则可能是这种情况。

所以在android工作室项目导航栏(ANDROID): Gradle Scripts -> build.gradle(project) -> 寻找buildscript - 为您的 kotlin 插件版本扩展和更新“kotlin_version”(这可以在工具 -> kotlin -> 配置 kotlin 插件更新中检查)