在Kotlin上为课程作业创建移动应用程序。我遇到了一个问题,由于某种原因,我无法在FragmentContainerView中嵌套片段。我在互联网上找不到如何修复它。
分级编码
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
}
android {
compileSdk 33
defaultConfig {
applicationId "com.example.historicalsaratovnav"
minSdk 28
targetSdk 33
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
dataBinding{enabled=true}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = '1.8'
}
}
dependencies {
implementation 'androidx.core:core-ktx:1.9.0'
implementation 'androidx.appcompat:appcompat:1.6.0'
implementation 'com.google.android.material:material:1.8.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
implementation 'com.google.android.material:material:1.8.0'
implementation("androidx.navigation:navigation-fragment-ktx:2.5.3")
implementation("androidx.navigation:navigation-ui-ktx:2.5.3")
implementation 'androidx.core:core-splashscreen:1.0.0'
implementation "androidx.fragment:fragment-ktx:1.6.0-alpha04"
}
代码布局
<androidx.drawerlayout.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Layout_Activity">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<androidx.fragment.app.FragmentContainerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:weightSum="1"
android:id="@+id/conteiner_fragment"
app:defaultNavHost="true"
android:gravity="center"/>
<com.google.android.material.bottomnavigation.BottomNavigationView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
app:labelVisibilityMode="labeled"
android:background="@color/white"
app:menu="@menu/menu"
android:id="@+id/bottom_navigation_view"
>
</com.google.android.material.bottomnavigation.BottomNavigationView>
</FrameLayout>
</androidx.drawerlayout.widget.DrawerLayout>
代码文件KT
import android.content.Context
import android.os.Binder
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.AttributeSet
import android.view.View
class Layout_Activity : AppCompatActivity() {
lateinit var binding: Layout_ActivityBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = Layout_ActivityBinding.inflate(layoutInflater)
setContentView(binding.root)
binding.Main.setOnClickListener {
replaceFragment(Main_App_Screen_Fragment())
}
binding.List.setOnClickListener {
}
binding.Map.setOnClickListener {
}
binding.Profile.setOnClickListener {
---
}
binding.Settings.setOnClickListener {
}
}
private fun replaceFragment(fragment: Main_App_Screen_Fragment) {
val fragmentManager = supportFragmentManager
val fragmentTransaction = fragmentManager.beginTransaction()
fragmentTransaction.replace(R.id.conteiner_fragment, fragment)
fragmentTransaction.commit()
}
}
尝试将依赖项添加到Gradle,但没有任何变化。此外,当我刚刚创建绑定时,系统会自动为我生成NameBinding。之后,我将其删除并进行了自定义,但由于应用程序无法运行,我无法执行任何其他操作。
3条答案
按热度按时间pn9klfpd1#
请在gradle中执行此操作
50few1ms2#
假设您有一个名为
xyz_activity.xml
的布局.xml
,那么android将创建一个名为XyzActivityBinding
的绑定建议您检查您
.xml
名称另加
在您应用程序构建器.gradle中
8oomwypt3#
如果这个解决方案对你没有帮助,建议你试一次这个解决方案。你面临这个错误是因为XML。
如果在使用DataBinding时需要使用标记,则可以使用此选项,以便编译器理解特殊标记并生成具有正确变量和方法的DataBinding类。
原答复:https://stackoverflow.com/a/44682671/19674027