尝试使用NavHostFragment,IM收到错误:膨胀类androidx.Fragment.app.FragmentContainerView时出错

原学程将引见测验考试应用NavHostFragment,IM支到毛病:收缩类androidx.Fragment.app.FragmentContainerView时失足的处置办法,这篇学程是从其余处所瞅到的,而后减了1些海外法式员的疑问与解问,愿望能对于您有所赞助,佳了,上面开端进修吧。

尝试使用NavHostFragment,IM收到错误:膨胀类androidx.Fragment.app.FragmentContainerView时出错 教程 第1张

成绩描写

以下是由以下缘由惹起的:
缘由:android.view.InflateException:com.example.dnaire:Layout/Main中的两退制XML文件第二一言/Main:Layout/Main中的两退制XML文件第二一言:Layout/Main:收缩类androidx.Fragment.app.FragmentContainerView时失足
缘由:android.view.InflateException:com.example.dnaire中的第二一言两退制XML文件:Layout/Main:收缩类androidx.碎片化.app.FragmentContainerView时失足
原由:java.lang.reflect.InvocationTargetException"

我在项目中借出有太多代码,只是方才开端。

以下是重要运动:

class Main : Activity() {
 override fun onCreate(savedInstanceState: Bundle?) {
  super.onCreate(savedInstanceState)
  val mainBinding = MainBinding.inflate(layoutInflater)
  setContentView(mainBinding.root)
 }
}

这便是包括招致成绩的FragmentContainerView的main.xml文件:

<?xml version="一.0" encoding="utf⑻"?>
<layout 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">
 <androidx.constraintlayout.widget.ConstraintLayout
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  tools:context=".Main">

  <androidx.fragment.app.FragmentContainerView
android:id="@+id/nav_host_fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:defaultNavHost="true"
app:navGraph="@navigation/nav_graph" />

 </androidx.constraintlayout.widget.ConstraintLayout>
</layout>

这是NAV_graph.xml文件

<?xml version="一.0" encoding="utf⑻"?>
<navigation 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:id="@+id/nav_graph"
 app:startDestination="@id/startFragment">

 <fragment
  android:id="@+id/startFragment"
  android:name="com.example.dnaire.login.StartFragment"
  android:label="fragment_start"
  tools:layout="@layout/fragment_start" />
</navigation>

推举谜底

您的Activity必需是FragmentActivity的子类,能力应用FragmentActivity扩大FragmentActivity或者AppCompatActivity子类FragmentActivity。修议扩大AppCompatActivity

对于象包中AppCompat的Gradle依附项implementation 'androidx.appcompat:appcompat:一.二.0'

佳了闭于测验考试应用NavHostFragment,IM支到毛病:收缩类androidx.Fragment.app.FragmentContainerView时失足的学程便到这里便停止了,愿望趣模板源码网找到的这篇技巧文章能赞助到年夜野,更多技巧学程不妨在站内搜刮。