我正在尝试从一个片段导航到另一个片段,将片段注册到登录片段 但它不起作用我尝试登录 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>
binding.btnLogin.setOnClickListener {
val action = RegisterFragmentDirections.actionRegisterFragmentToLoginFragment()
findNavController().navigate(action)
}