Kotlin导航-后退按钮不起作用

时间:2019-03-18 20:33:19

标签: android kotlin navigation

我在Kotlin中有以下代码

package com.example.android.navigation
    import android.os.Bundle
    import androidx.appcompat.app.AppCompatActivity
    import androidx.databinding.DataBindingUtil
    import androidx.navigation.findNavController
    import androidx.navigation.ui.NavigationUI
    import com.example.android.navigation.databinding.ActivityMainBinding


class MainActivity : AppCompatActivity() {
    private lateinit var binding: ActivityMainBinding
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = DataBindingUtil.setContentView(this, R.layout.activity_main)
        val navcon = this.findNavController(R.id.NavFragment)
        NavigationUI.setupActionBarWithNavController(this, navcon)

    }

    override fun onNavigateUp(): Boolean {
        val navcon = this.findNavController(R.id.NavFragment)
        return navcon.navigateUp()
    }

}

该代码应实现后退按钮并使其正常工作(向上导航后退堆栈)。但是,当我运行该应用程序并单击生成的后退按钮时,什么也没有发生(该按钮不起作用,但单击时也不会产生错误)。有谁知道为什么它不起作用/如何使其正常工作?

1 个答案:

答案 0 :(得分:1)

AppCompatActivity有一个单独的onSupportNavigateUp()方法,应根据Navigation Action Bar documentation使用该方法代替onNavigateUp()