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() 
  • Delegación de Kotlin a expresión en lugar de reference fija
  • Android: envío de datos a MainActivity
  • Android / Kotlin: reference no resuelta: madera
  • Uso en generics en Multibinder
  • Cómo forzar que algún método sea visible solo para kotlin
  • Generación de constructores vacíos de Kotlin Poet - inheritance
  • Cambiar el filter de color del elemento del cajón de navigation también cambia el imageView, que es el mismo ID de image
  • Android: refactoriza muchos grupos de botones de radio en una actividad
  • EXCEPCIÓN FATAL: RxCachedThreadScheduler-1 cuando el gatillo se deshace. ¿Por qué?
  • Validación del método Hibernate
  • Migración de Java a Kotlin