我在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()
}
}
该代码应实现后退按钮并使其正常工作(向上导航后退堆栈)。但是,当我运行该应用程序并单击生成的后退按钮时,什么也没有发生(该按钮不起作用,但单击时也不会产生错误)。有谁知道为什么它不起作用/如何使其正常工作?
答案 0 :(得分:1)
AppCompatActivity
有一个单独的onSupportNavigateUp()
方法,应根据Navigation Action Bar documentation使用该方法代替onNavigateUp()
。