【问题标题】:Restore recycler view state when navigating back to the fragment - using the jetpacks navigation architecture导航回片段时恢复回收器视图状态 - 使用 jetpacks 导航架构
【发布时间】:2018-10-08 15:46:42
【问题描述】:

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

【问题讨论】:

  • 如果您正确编写了 Fragment,RecyclerView 会自动恢复其位置,无论您是否使用 Navigation。

标签: android navigation android-jetpack


【解决方案1】:

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

一种破解方法是将视图存储在局部变量中,并在 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


    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-04
    • 2019-03-22
    • 2022-07-05
    相关资源
    最近更新 更多