Как добавить фрагмент в действие через макет AppComponent
Я новичок в раскладке котлин Анко. У меня есть основное действие, класс фрагмента и класс AnkoComponent (MainActivityUI) для повторно используемого пользовательского интерфейса. Моя проблема в том, что я не могу добавить добавить фрагмент в макет AnkoComponent. Встроенные комментарии объясняют, что не работает.
MainActivity.kt:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
MainActivityUI().setContentView(this)
}
}
MainActivityUI является внутренним классом в MainActivity.kt:
class MainActivityUI : AnkoComponent<MainActivity> {
override fun createView(ui: AnkoContext<MainActivity>) = ui.apply {
verticalLayout {
padding = 250
backgroundColor = Color.CYAN
val name = editText().lparams(width = matchParent, height = wrapContent)
button("Say Hello") {
onClick { ctx.toast("Hello, ${name.text}!") }
}.lparams(width = matchParent, height = wrapContent)
/*supportFragmentManager
.beginTransaction()
.add(R.id.root_layout, ConfigDescriptionFragment.newInstance(), "rageComicList")
.commit()*/
// THE ABOVE COMMENTED PART DOES NOT WORK. ANDROID CANNOT RESOLVE supportFragmentManager
}
}.view
}
ConfigDescriptionFragment:
class ConfigDescriptionFragment : Fragment() {
var configDecription: TextView? = null
companion object {
fun newInstance(): ConfigDescriptionFragment {
return ConfigDescriptionFragment()
}
}
override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? {
val view = UI {
verticalLayout {
gravity = Gravity.CENTER_HORIZONTAL
padding = dip(10)
backgroundColor = Color.CYAN
configDecription = textView()
}.layoutParams = LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT)
}.view
return view
}
}