可以使用提供的参数调用以下函数的 setupWithNavController(navController) None
setupWithNavController(navController) None of the following functions can be called with the arguments supplied
Android Studio 无法识别 setupWithNavController(navController)
.
的正确导入
但它在 Google I/O 应用程序中有效:
https://github.com/google/iosched
我创建了一个 hello world 项目,我只添加了 NavHostFragment
:
activity_main.xml:
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<fragment
android:id="@+id/nav_host_fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="?android:attr/actionBarSize"
app:defaultNavHost="true"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="FragmentTagUsage" />
</androidx.constraintlayout.widget.ConstraintLayout>
和这 3 个库:
build.gradle(应用级别):
dependencies {
constraints {
api "androidx.navigation:navigation-fragment-ktx:2.3.5"
api "androidx.navigation:navigation-ui-ktx:2.3.5"
api "com.google.android.material:material:1.3.0"
}
implementation "androidx.navigation:navigation-fragment-ktx:2.3.5"
implementation "androidx.navigation:navigation-ui-ktx:2.3.5"
implementation "com.google.android.material:material:1.3.0"
}
应用程序没有看到 setupWithNavController
和 navController
作为参数的方法。但在 Google I/O 应用程序中它确实如此。
我尝试直接引用整个包名,但它只识别 NavigationUI:
当我点击导入时,我确实看到了正确的库:
这是正确的 class:
我试过使缓存无效/重新启动并清理,构建所有但没有成功。
你需要导航视图来使用设置导航控制器看起来像这样希望有帮助
MainActivity.kt
package com.example.yourpackagename
import android.os.Bundle
import com.google.android.material.bottomnavigation.BottomNavigationView
import androidx.appcompat.app.AppCompatActivity
import androidx.navigation.findNavController
import androidx.navigation.ui.AppBarConfiguration
import androidx.navigation.ui.setupActionBarWithNavController
import androidx.navigation.ui.setupWithNavController
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val navView: BottomNavigationView = findViewById(R.id.nav_view)
val navController = findNavController(R.id.nav_host_fragment)
val appBarConfiguration = AppBarConfiguration(setOf(
R.id.navigation_home, R.id.navigation_dashboard, R.id.navigation_notifications))
setupActionBarWithNavController(navController, appBarConfiguration)
navView.setupWithNavController(navController)
}
}
activity_main.xml
Android Studio 无法识别 setupWithNavController(navController)
.
但它在 Google I/O 应用程序中有效:
https://github.com/google/iosched
我创建了一个 hello world 项目,我只添加了 NavHostFragment
:
activity_main.xml:
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<fragment
android:id="@+id/nav_host_fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="?android:attr/actionBarSize"
app:defaultNavHost="true"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="FragmentTagUsage" />
</androidx.constraintlayout.widget.ConstraintLayout>
和这 3 个库:
build.gradle(应用级别):
dependencies {
constraints {
api "androidx.navigation:navigation-fragment-ktx:2.3.5"
api "androidx.navigation:navigation-ui-ktx:2.3.5"
api "com.google.android.material:material:1.3.0"
}
implementation "androidx.navigation:navigation-fragment-ktx:2.3.5"
implementation "androidx.navigation:navigation-ui-ktx:2.3.5"
implementation "com.google.android.material:material:1.3.0"
}
应用程序没有看到 setupWithNavController
和 navController
作为参数的方法。但在 Google I/O 应用程序中它确实如此。
我尝试直接引用整个包名,但它只识别 NavigationUI:
当我点击导入时,我确实看到了正确的库:
这是正确的 class:
我试过使缓存无效/重新启动并清理,构建所有但没有成功。
你需要导航视图来使用设置导航控制器看起来像这样希望有帮助
MainActivity.kt
package com.example.yourpackagename
import android.os.Bundle
import com.google.android.material.bottomnavigation.BottomNavigationView
import androidx.appcompat.app.AppCompatActivity
import androidx.navigation.findNavController
import androidx.navigation.ui.AppBarConfiguration
import androidx.navigation.ui.setupActionBarWithNavController
import androidx.navigation.ui.setupWithNavController
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val navView: BottomNavigationView = findViewById(R.id.nav_view)
val navController = findNavController(R.id.nav_host_fragment)
val appBarConfiguration = AppBarConfiguration(setOf(
R.id.navigation_home, R.id.navigation_dashboard, R.id.navigation_notifications))
setupActionBarWithNavController(navController, appBarConfiguration)
navView.setupWithNavController(navController)
}
}
activity_main.xml