如题
下面上代码
class HomeFragment : Fragment() {
    val viewModel by lazy {
        ViewModelProvider(this)[HomeViewModel::class.java]
    }
    private lateinit var adapter: ArticleListAdapter
    override fun onCreateView(
        inflater: LayoutInflater,
        container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        val root = inflater.inflate(R.layout.fragment_home, container, false)
        return root
    }
    override fun onActivityCreated(savedInstanceState: Bundle?) {
        super.onActivityCreated(savedInstanceState)
        val linearLayoutManager = LinearLayoutManager(activity)
        rv_home.layoutManager = linearLayoutManager
        adapter = ArticleListAdapter(viewModel.articleList)
        rv_home.adapter = adapter
        viewModel.getHomeArticle(0)
        viewModel.articleLiveData.observe(viewLifecycleOwner, { result ->
            val HomePages = result.getOrNull()
            viewModel.articleList = HomePages
            adapter.notifyDataSetChanged()
        })
    }
}
class HomeViewModel : ViewModel() {
    var articleList: HomeArticleBean? = null
    private val observerArticleLiveData = MutableLiveData<Int>()
    val articleLiveData = Transformations.switchMap(observerArticleLiveData) { page ->
        Repository.getHomeArticles(page)
    }
//当我在HomeFragement中调用这个方法的时候应该会导致 Transformations.switchMap(observerArticleLiveData) 被调用并且从Repository中拿到数据并更新UI,但是Debug发现不会执行Repository.getHomeArticles(page)
    fun getHomeArticle(page: Int) {
        observerArticleLiveData.value = page
    }
}
你先加log,养成良好的习惯。