为什么我无法移动到另一个片段

问题描述 投票:0回答:1

我正在尝试从一个片段导航到另一个片段,将片段注册到登录片段 但它不起作用我尝试登录 setclicklistener 它工作正常,但是 它 findNavController 不起作用。下面我粘贴了寄存器片段的代码和我的 导航图。

    Register Fragment
    class RegisterFragment : Fragment() {
    private var _binding: FragmentRegisterBinding?=null
    private val binding get() =_binding!!
    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        // Inflate the layout for this fragment
        _binding=FragmentRegisterBinding.inflate(inflater,container,false)
      return binding.root
    }

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        binding.btnLogin.setOnClickListener {
          findNavController().navigate(R.id.action_registerFragment_to_loginFragment)
        }
    }
    override fun onDestroyView() {
        super.onDestroyView()
        _binding=null
    }}




  Navigation graph
 <?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/nav_graph"
    app:startDestination="@id/registerFragment">

    <fragment
        android:id="@+id/loginFragment"
        android:name="com.example.splitpay.LoginFragment"
        android:label="fragment_login"
        tools:layout="@layout/fragment_login" >
        <action
            android:id="@+id/action_loginFragment_to_mainFragment"
            app:destination="@id/mainFragment" />
        <action
            android:id="@+id/action_loginFragment_to_registerFragment"
            app:destination="@id/registerFragment" />
    </fragment>
    <fragment
        android:id="@+id/registerFragment"
        android:name="com.example.splitpay.RegisterFragment"
        android:label="fragment_register"
        tools:layout="@layout/fragment_register" >
        <action
            android:id="@+id/action_registerFragment_to_loginFragment"
            app:destination="@id/loginFragment" />
        <action
            android:id="@+id/action_registerFragment_to_mainFragment"
            app:destination="@id/mainFragment" />
    </fragment>
    <fragment
        android:id="@+id/mainFragment"
        android:name="com.example.splitpay.mainFragment"
        android:label="fragment_main"
        tools:layout="@layout/fragment_main" />
</navigation>
android kotlin navigation
1个回答
0
投票
    binding.btnLogin.setOnClickListener {
  val action = RegisterFragmentDirections.actionRegisterFragmentToLoginFragment()
    findNavController().navigate(action)
}
© www.soinside.com 2019 - 2024. All rights reserved.