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() 
  • El 'Retorno' omitido en Kotlin necesita código adicional. ¿Cómo arreglar eso?
  • Android solo estableceStackFromEnd solo si RecycleView / List es más grande que la pantalla
  • La animation circular no juega
  • Error Kotlin: reference no resuelta: fusionar (para list.merge ())
  • Corutinas paralelas de Kotlin
  • Kotlin llama al método java con el argumento Clase <T>
  • Creación de instancia pública de class interna privada en Kotlin
  • Iteración de files, split por patrón
  • Swagger para Kotlin
  • Funciones de extensión para classs genéricas en Kotlin
  • reference no resuelta: text - Android Studio + Kotlin (findViewById fault?)