我尝试使用SupportFragmentManager添加一个片段,但是add函数以红色突出显示。这段代码在另一个项目中工作。可能是我不理解的东西。整个问题在图片中可见。
“添加”有问题
错误:无法使用所提供的参数调用以下函数。
package com.example.homework4_task1.presentation.main
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.core.view.WindowCompat
import androidx.fragment.app.commit
import androidx.fragment.app.add
import com.example.homework4_task1.R
import com.example.homework4_task1.presentation.main.fragments.MainFragment
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
fitContentViewToInsets()
supportFragmentManager.commit {
add<MainFragment> {
R.id.container
}
}
}
private fun fitContentViewToInsets() {
WindowCompat.setDecorFitsSystemWindows(window, false)
}
}
dependencies {
implementation 'androidx.core:core-ktx:1.7.0'
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'com.google.android.material:material:1.8.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation 'androidx.fragment:fragment-ktx:1.5.5'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
}
1条答案
按热度按时间hec6srdp1#
我认为问题是你在结尾用了lambda我能找到唯一相似之处是:
它实际上是一个扩展,您必须导入
我认为问题出在lambda上,因为这意味着你传递了一个返回id(
Int``@ResId
)的函数,但是可用的方法总是需要一个id
参数来知道在哪里附加片段。