Fragmento en kotlin

Estoy atrapado en mi aplicación porque tengo que hacer un fragment con el cajón de navigation en kotlin. ¿Alguien puede ayudar? He buscado muchas cosas en la web pero todavía no he encontrado nada … Aquí abajo hay dos elementos que tengo que hacer en la actividad principal y quiero que también estén presentes en el fragment.

override fun onNavigationItemSelected(item: MenuItem): Boolean { // Handle navigation view item clicks here. when (item.itemId) { R.id.home -> { } R.id.subjects -> { val intent = Intent(this, SubjectsActivity::class.java) startActivity(intent) } } drawer_layout.closeDrawer(GravityCompat.START) return true } 

Es algo como esto? @NongthonbamTonthoi

 class NavViewFragment : AppCompatActivity(), NavigationView.OnNavigationItemSelectedListener { fun AppCompatActivity.addFragment(fragment: Fragment, frameId: Int){ supportFragmentManager.inTransaction { add(frameId, fragment) } } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_nav_view_fragment) setSupportActionBar(toolbar) nav_view.setNavigationItemSelectedListener(this) } override fun onBackPressed() { if (drawer_layout.isDrawerOpen(GravityCompat.START)) { drawer_layout.closeDrawer(GravityCompat.START) } else { super.onBackPressed() } } override fun onCreateOptionsMenu(menu: Menu): Boolean { // Inflate the menu; this adds items to the action bar if it is present. menuInflater.inflate(R.menu.nav_view, menu) return true } override fun onOptionsItemSelected(item: MenuItem): Boolean { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. when (item.itemId) { R.id.action_settings -> return true else -> return super.onOptionsItemSelected(item) } } override fun onNavigationItemSelected(item: MenuItem): Boolean { // Handle navigation view item clicks here. when (item.itemId) { R.id.home -> { } R.id.subjects -> { val intent = Intent(this, SubjectsActivity::class.java) startActivity(intent) } } drawer_layout.closeDrawer(GravityCompat.START) return true } inline fun FragmentManager.inTransaction(func: FragmentTransaction.() -> Unit) { val fragmentTransaction = beginTransaction() fragmentTransaction.func() fragmentTransaction.commit() } } 

Puede usar esto para replace su marco con HomeFragment (). MainDisplayFrame debe ser reemplazado por su FrameID.

 var fragmentTransaction = supportFragmentManager.beginTransaction() fragmentTransaction = supportFragmentManager.beginTransaction() fragmentTransaction.replace(R.id.mainDisplayFrame,HomeFragment()).commit() mDrawerLayout!!.closeDrawers() 
  • ¿Cómo llamar al súper método de la class externa desde la class interna en Kotlin?
  • Archivo de activos abiertos de Android Kotlin
  • extracción de resources de string para kotlin en android studio?
  • ¿Por qué no obtengo el resultado correcto cuando uso la function parseList original en Kotlin?
  • ¿Cuál es el equivalente de Kotlin de Java Stream.collect?
  • ¿Cómo puedo completar mi constructor?
  • Spring Boot e Hibernate. Manejar la fábrica de sesiones
  • ¿Por qué Anko no puede ignorar el valor pasado de _id cuando _id es INTEGER + PRIMARY_KEY + AUTOINCREMENT?