首页 > 解决方案 > 在视图模型不起作用的片段之间更改

问题描述

我正在使用带有注入的视图模型。在我的 scnario 中,我有两个片段。A一个是A,另一个是B。使用A Viewmodel时,它正在工作。但是在更改 A -> B -> A 之后,A Viewmodel 不起作用。我不明白为什么视图模型不起作用。我解决的唯一方法是生成一个新的片段 A。但我想使用 DaggerFragment。请让我知道为什么会这样。

视图模型注入代码

 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 在更改片段后不起作用。

标签: android

解决方案


推荐阅读