Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 此NavController内部选项卡布局未知_Android_Android Tablayout_Android Jetpack Navigation - Fatal编程技术网

Android 此NavController内部选项卡布局未知

Android 此NavController内部选项卡布局未知,android,android-tablayout,android-jetpack-navigation,Android,Android Tablayout,Android Jetpack Navigation,我正在实现一个导航组件,但当我的片段位于选项卡布局内时,出现了一个问题,它显示了如下错误: /此控制器不知道操作\u previousMatchFragment\u到\u detailMatchFragment class MatchAdapter(私有val listMatchItems:List): RecyclerView.Adapter(){ 私有变量项ClickListener:((Match.MatchItem)->单位)?=null 重写CreateViewHolder(父级:Vi

我正在实现一个导航组件,但当我的片段位于选项卡布局内时,出现了一个问题,它显示了如下错误:

/此控制器不知道操作\u previousMatchFragment\u到\u detailMatchFragment

class MatchAdapter(私有val listMatchItems:List):
RecyclerView.Adapter(){
私有变量项ClickListener:((Match.MatchItem)->单位)?=null
重写CreateViewHolder(父级:ViewGroup,viewType:Int):MatchViewHolder{
返回匹配视图保持器(
LayoutFlater.from(parent.context).充气(
R.layout.item\u匹配,父项,false
)
)
}
重写getItemCount():Int=listMatchItems.size
覆盖BindViewHolder(holder:MatchViewHolder,位置:Int){
val matchItem:Match.matchItem=listMatchItems[位置]
持有者。绑定项(匹配项)
holder.itemView.setOnClickListener{
itemClickListener?调用(匹配项)
}
}
趣味setItemClickListener(监听器:(matchItem:Match.matchItem)->Unit){
itemClickListener=监听器
}
}
类PreviousMatchFragment:Fragment(),PreviousMatchImpl.View{
私有变量matchItems:MutableList=mutableListOf()
由lazy提供的私有val适配器{
匹配适配器(
火柴
)
}
私有lateinit var呈现者:PreviousMatchPresenter
私有变量leagueId:字符串?=null
有趣的新实例(leagueId:String):PreviousMatchFragment{
val bundle=bundle()
bundle.putString(“leagueId”,leagueId)
val fragment=PreviousMatchFragment()
fragment.arguments=bundle
返回片段
}
私人娱乐阅读包(包:包?){
if(bundle!=null){
leagueId=bundle.getString(“leagueId”)
}
}
覆盖创建视图(
充气器:布局充气器,容器:视图组?,
savedInstanceState:捆绑?
):查看{
//为该碎片膨胀布局
val视图=充气机。充气(R.layout.fragment\u last\u match,container,false)
参数?让{readBundle(it)}
adapter.setItemClickListener{
导航.findNavController(视图).导航(PreviousMatchFragmentDirections.actionPreviousMatchFragmentToDetailMatchFragment(leagueId))
}
返回视图
}
覆盖已创建的视图(视图:视图,保存状态:捆绑?){
super.onViewCreated(视图,savedInstanceState)
presenter=PreviousMatchPresenter(此)
leagueId?.let{presenter.getListMatch(it)}
rv_last_match.layoutManager=LinearLayoutManager(上下文)
rv_last_match.adapter=适配器
}
覆盖设置数据列表(数据:列表){
matchItems.clear()
matchItems.addAll(数据)
adapter.notifyDataSetChanged()
}
}
完全错误是:

java.lang.IllegalArgumentException:navigation destination com.example.rifqi.footballapp:id/action\u previousMatchFragment\u to\u detailMatchFragment对此导航控制器未知


您正在将
R.layout.fragment\u last\u match
设置为NavController应该位于的片段。这不是您使用NavController的方式

您的
Navigation.findNavController(视图).导航(PreviousMatchFragmentDirections.actionPreviousMatchFragmentToDetailMatchFragment(leagueId))

应该是

Navigation.findNavController(导航主机片段的R.ID.)。导航(PreviousMatchFragmentDirections.actionPreviousMatchFragmentToDetailMatchFragment(leagueId))

其中,R.ID.OF_NAV_HOST_片段是NavHostFragment的ID,而不仅仅是任何片段