导航回片段时,还原回收器视图状态-使用jetpacks导航体系结构

时间:2018-10-08 15:46:43

标签: android navigation android-jetpack

我正在使用最新的jetpacks导航体系结构。我有一个包含回收站视图的片段,此回收站视图显示项目列表。单击一个项目后,它将带您到项目详细信息片段。因此,当我从详细信息片段导航回来时,我希望页面保留用户单击的项目的位置,而不是一直滚动到项目列表的顶部。新的jetpacks导航架构中是否可以“添加”片段?看起来片段总是“被替换”的吗?有没有办法改变这种默认行为?

1 个答案:

答案 0 :(得分:0)

也许为时已晚,但它可能对某人有所帮助

一种破解方法是将视图存储在局部变量中,并在onCreateView内再次加载片段(在向后导航后)时恢复视图

假设您正在使用绑定,然后

private var rootView: View? = null

    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        binding = DataBindingUtil.inflate(inflater, R.layout.id, container, false)

        if(rootView == null) {
            rootView = binding.root
            return binding.root
        }

        return rootView


    }