Android Kotlin Bottom导航栏

时间:2018-05-31 11:35:37

标签: android kotlin bottomnavigationview

我使用底部导航栏(默认情况下为xx_activity底部),但我遇到了问题。 当我点击该项目时,该活动很好,但活动的项目没有改变...

import android.content.Intent
import android.os.Bundle
import android.support.design.widget.BottomNavigationView
import android.support.v7.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_grammaire.*

class GrammaireActivity : AppCompatActivity() {

    private val mOnNavigationItemSelectedListener=BottomNavigationView.OnNavigationItemSelectedListener { item ->
        when (item.itemId) {
            R.id.navigation_grammaire -> {
                val intent = Intent(this,GrammaireActivity::class.java)
                startActivity(intent)
                return@OnNavigationItemSelectedListener true
            }
            R.id.navigation_situations -> {
                val intent = Intent(this,SituationsActivity::class.java)
                startActivity(intent)
                return@OnNavigationItemSelectedListener true
            }
            R.id.navigation_lexiquefrsa -> {
                val intent = Intent(this,LexiqueFrSaActivity::class.java)
                startActivity(intent)
                return@OnNavigationItemSelectedListener true
            }
            R.id.navigation_lexiquesafr -> {
                val intent = Intent(this,LexiqueSaFrActivity::class.java)
                startActivity(intent)
                return@OnNavigationItemSelectedListener true
            }
            R.id.navigation_infos -> {
                val intent = Intent(this,InfosActivity::class.java)
                startActivity(intent)
                return@OnNavigationItemSelectedListener true
            }
        }
        false
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_grammaire)

        navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener)
    }

}

2 个答案:

答案 0 :(得分:1)

我认为建议使用带有底部导航的片段,而不是活动。 使用onClick,您可以将当前片段换成单击标识的片段。

答案 1 :(得分:1)

我不确定“活动的项目没有改变”,但我认为你的意思是说你当前活动的内容不会改变。

因此,您应该在点击BottomNavigation项目时替换活动中的碎片。这是应该如何做的

 when (item.itemId) {

      R.id.navigation_grammaire -> {
      supportFragmentManager.beginTransaction.replace(R.id.container, FragmnetGrammaire().commit())
    }

其中“container”是BottomNavigation栏上方视图的ID。它可以是FrameLayout。 FragmnetGrammaire()是Fragment的实例。