最近,我对新的令人兴奋的android工具感到非常兴奋。其中Navigation按常规吸引了我。我以为这个code lab很好开始。但是,作为一个绝对的初学者,我发现它有点有趣,因为它没有说明有关逐步设置导航组件的任何内容。因此,我开始将其分解为小部分,并开始将其实施到一个单独的项目中。
我的主要活动代码
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
setSupportActionBar(toolbar)
}
override fun onSupportNavigateUp(): Boolean =
findNavController(R.id.my_nav_host_fragment).navigateUp()
}
在我的主要活动布局中
<fragment
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:id="@+id/my_nav_host_fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
android:navGraph="@navigation/mobile_navigation"
android:defaultNavHost="true"
/>
答案 0 :(得分:3)
您的错误是明确的
Android资源链接失败activity_main.xml:19:错误:找不到属性android:defaultNavHost
原因是您输入了错误的属性android:navGraph="@navigation/mobile_navigation"
android:defaultNavHost="true"
,应为app:navGraph="@navigation/mobile_navigation"
app:defaultNavHost="true"
答案 1 :(得分:1)
如果您已经提供了正确的属性;即;
app:navGraph="@navigation/mobile_navigation"
app:defaultNavHost="true"
&您仍然收到此错误,请按照以下步骤操作:
在Project build.gradle中:
依赖项{ 类路径“ androidx.navigation:navigation-safe-args-gradle-plugin:2.2.1” }
在应用程序build.gradle中:
def nav_version =“ 2.2.2”
实现“ androidx.navigation:navigation-fragment-ktx:$ nav_version”
实现“ androidx.navigation:navigation-ui-ktx:$ nav_version”