Как добавить фрагмент в действие через макет 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
}

}

0 ответов

Другие вопросы по тегам