3

我在我的应用程序中有以下过渡,但由于大量加载到 recyclerview 和其他图形元素中,到新目的地的动画滞后。

我曾尝试在 recyclerview 上加载元素时使用 postDelayed,但在某些设备上,您会觉得在转换后等待,而在其他设备上,转换需要更长的时间(取决于设备)。所以我登陆了700ms,但这对所有人都不好......

有没有一种方法(即回调)我可以检测到过渡何时实际确认结束。

我的代码非常简单,当单击一个片段中的按钮时,我称之为:

private fun onDetailClick(stationId: String, itemView: View)
{
    (itemView.context as MainActivity).bottom_navigation.visibility = View.GONE
    StationDetailRepository.readStationCurrentPrices2(stationId)

    val direction = StationListFragmentDirections.actionStationListFragmentToStationDetailFragment(stationId)
    try {
        Log.i(TAG,"trns: before navigate")
        itemView.findNavController()?.navigate(direction)
        Log.i(TAG,"trns: after navigate")
    }catch(iae: IllegalArgumentException)
    {
        iae.printStackTrace()
    }
    catch (ise: IllegalStateException)
    {
        ise.printStackTrace()
    }
}

简单地说,我怎样才能检测到这个导航实际上已经结束,并且设置了一个我可以在另一个 Fragment 中观察到的 viewModel 共享,所以可以以一种理智的方式触发元素的加载?

RG

4

0 回答 0