我正在使用带注入的viewmodel。在我的计划中,我有两个片段。一个是A,另一个是B。 使用A Viewmodel时,它可以正常工作。但是在更改A-> B-> A之后,A Viewmodel不起作用。 我不明白为什么视图模型不起作用。我解决的唯一方法是生成一个新片段A。但是我想使用DaggerFragment。请让我知道为什么会这样。
viewmodel注入代码
class AFragment : DaggerFragment(){
@Inject
lateinit var viewModelFactory : ViewModelProvider.Factory
private val viewModel by viewModels<HomeViewModel>{viewModelFactory}
override fun onCreateView (inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
binding = FragmentHomeFirstwalkingBinding.inflate(layoutInflater, container,false).apply {
viewmodel = viewModel
}
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
initLayout()
}
private fun initLayout(){
binding.title.setOnClickListener {
viewModel.getTrainingDataList("sad")
}
}
}
更改片段后,binding.title.setOnClickListener不起作用。