Android 使用导航扩展带有片段的类布局时出错
我在尝试运行此应用程序时遇到此错误。我跟随了无数的向导,但都无济于事。我只是想做一个简单的导航练习 我的应用程序应该有一个活动(mainactivity)和两个子片段。第一个片段(TitleFragment)是主片段,它有一个调用findNavController()的按钮。导航到第二个片段(这只是一个空白的默认片段) 但是,应用程序将不会运行-出现以下错误:Android 使用导航扩展带有片段的类布局时出错,android,kotlin,android-fragments,navigation,Android,Kotlin,Android Fragments,Navigation,我在尝试运行此应用程序时遇到此错误。我跟随了无数的向导,但都无济于事。我只是想做一个简单的导航练习 我的应用程序应该有一个活动(mainactivity)和两个子片段。第一个片段(TitleFragment)是主片段,它有一个调用findNavController()的按钮。导航到第二个片段(这只是一个空白的默认片段) 但是,应用程序将不会运行-出现以下错误: java.lang.RuntimeException: Unable to start activity ComponentInfo{c
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.lbaron.test1/com.lbaron.test1.MainActivity}: android.view.InflateException: Binary XML file line #2 in com.lbaron.test1:layout/activity_main: Binary XML file line #2 in com.lbaron.test1:layout/activity_main: Error inflating class layout
MainActivity.kt
package com.lbaron.test1
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<androidx.fragment.app.FragmentContainerView
android:id="@+id/myNavHostFragment"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:navGraph="@navigation/navigation"
app:defaultNavHost="true"/>
</LinearLayout>
</layout>
fragment_title.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".TitleFragment">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="title fragment" />
<Button
android:id="@+id/btn"
android:layout_width="200dp"
android:layout_gravity="center"
android:layout_height="wrap_content"
android:text="click"/>
</FrameLayout>
navigation.xml
<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
app:startDestination="@id/titleFragment">
<fragment
android:id="@+id/titleFragment"
android:name="com.lbaron.test1.TitleFragment"
android:label="TitleFragment" >
<action
android:id="@+id/action_titleFragment_to_mainContent"
app:destination="@id/mainContent" />
</fragment>
<fragment
android:id="@+id/mainContent"
android:name="com.lbaron.test1.MainContent"
android:label="fragment_main_content"
tools:layout="@layout/fragment_main_content" />
</navigation>
我的问题是:为什么我不能扩大我的班级布局
非常感谢-感谢所有帮助。正如编译器所说,它无法对
活动\u main.xml
文件中使用的
父视图进行膨胀,这可能是因为它没有定义
尝试按如下方式编辑XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<androidx.fragment.app.FragmentContainerView
android:id="@+id/myNavHostFragment"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:navGraph="@navigation/navigation"
app:defaultNavHost="true"/>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<androidx.fragment.app.FragmentContainerView
android:id="@+id/myNavHostFragment"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:navGraph="@navigation/navigation"
app:defaultNavHost="true"/>
</LinearLayout>