Я использую контроллер навигации.

Мне было интересно, стоит ли добавить еще один пункт назначения, чтобы вернуться? или есть встроенный вызов, который это делает.

override fun onCreateView(
    inflater: LayoutInflater, container: ViewGroup?,
    savedInstanceState: Bundle?
): View? {
    return inflater.inflate(R.layout.fragment_sign_up, container, false).apply {
        val navController = NavHostFragment.findNavController(this@SignUpFragment)

        this.btnSignUp.setOnClickListener {
            navController.navigate(R.id.action_signUpFragment_to_homeActivity)
        }
        this.btnGotoLogin.setOnClickListener {
            navController.navigate(R.id.action_signUpFragment_to_loginFragment)
        }

        this.back_to_auth_selection.setOnClickListener {
            // should I add another action ?
        }
    }
}
0
AbdElraouf Sabri 19 Авг 2020 в 13:52

2 ответа

Лучший ответ
 this.back_to_auth_selection.setOnClickListener
        {
            activity?.onBackPressed()
        }
2
Mohamed AbdelraZek 19 Авг 2020 в 11:00

Вы также можете добавить кнопку «Вверх» на каждый фрагмент, кроме домашнего.

Для этого в основном виде деятельности

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        
        // use nav controller to add Up-Button to the app
        val navController = this.findNavController(R.id.nav_host_fragment)

        // link the navigation controller to the app bar
        NavigationUI.setupActionBarWithNavController(this, navController)

    }

    //override onSupportNavigateUp() to call navigateUp() in the navigation controller
    override fun onSupportNavigateUp(): Boolean {

        val navController = this.findNavController(R.id.nav_host_fragment)
        return navController.navigateUp()
    }
}`

Извините, мой код находится в Котлине

-1
Fanadez 19 Авг 2020 в 11:09