我想在我的应用程序中使用导航。
在main_activity
中声明
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<!-- Main content -->
<fragment
android:id="@+id/nav_host_fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:defaultNavHost="true"
app:navGraph="@navigation/nav_graph" />
</androidx.constraintlayout.widget.ConstraintLayout>
然后我想使用动作从Fragment1转到Fragment2 更新,我添加了更多代码
class LoginFragment2 : Fragment(){
private lateinit var viewModel : LoginViewModel2
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
return inflater.inflate(R.layout.fr_login, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
initViews()
}
private fun initViews() {
btn_registration.setOnClickListener {
// Navigation.findNavController(it).navigate(R.id.action_loginFragment2_to_newTypeAccountFragment)
// navController = Navigation.findNavController(view)
// findNavController(it).navigate(R.id.action_loginFragment2_to_newTypeAccountFragment)
this.findNavController().navigate(R.id.action_loginFragment2_to_newTypeAccountFragment)
}
}
我尝试了几种选择(但没有一种没有帮助我)
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.app.peshkariki, PID: 22658
java.lang.IllegalStateException: View androidx.constraintlayout.widget.ConstraintLayout{ca39b84
V.E...... ........ 0,0-720,1360} does not have a NavController set
如何正确使用它?
导航图(实际上,它很大,但是我会发布与该片段有关的一小部分)
<?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/mainActivity">
<fragment
android:id="@+id/loginFragment2"
android:name="com.app.peshkariki.newPesh.ui.login.LoginFragment2"
android:label="LoginFragment2"
tools:layout="@layout/fr_login">
<action
android:id="@+id/action_loginFragment2_to_newTypeAccountFragment"
app:destination="@id/newTypeAccountFragment" />
</fragment>
</navigation>
答案 0 :(得分:0)
您给$('#intolerance').tagsinput({
typeahead: {
source: ['Dairy', 'Egg', 'Gluten', 'Grain', 'Peanut', 'Seafood', 'Sesame', 'Shellfish', 'Soy', 'Sulfite', 'Tree Nut', 'Wheat']
},
freeInput: true
});
$('input').on('itemAdded', function(event) {
setTimeout(function(){
$(">input[type=text]",".bootstrap-tagsinput").val("");
}, 1);
});
打过电话,但您不需要。
将其更改为
NavHostFragment
将此内容放入btn_registration.setOnClickListener {
this.findNavController()
.navigate(R.id.action_loginFragment2_to_newTypeAccountFragment)
}
:
onViewCreated
另外,您可能想这样做course