首页 > 解决方案 > 检测片段何时再次获得焦点

问题描述

在我的应用程序中,我有两个片段,当单击第一个片段中的按钮时,我加载第二个片段并将前一个片段添加到后台堆栈。

getActivity().supportFragmentManager.beginTransaction()
       .add(R.id.frame_layout, fragment2)
       .addToBackStack(null)
       .setTransition(FragmentTransaction.TRANSIT_NONE)
       .commit()

结果是按下后会关闭第二个片段并将我返回到前一个片段,这正是我想要的。但是,此时应刷新第一个片段上的某些元素。当用户单击返回并返回到第一个片段时,我如何知道刷新该片段中的数据?在这种情况下是否有诸如 onResume() 之类的方法?

标签: androidandroid-fragments

解决方案


我假设你在第一个片段中调用它,你应该调用hidetry this

getActivity().supportFragmentManager.beginTransaction()
       .add(R.id.frame_layout, fragments)
       .hide(this)
       .addToBackStack(null)
       .setTransition(FragmentTransaction.TRANSIT_NONE)
       .commit()

在第一个片段覆盖onHiddenChanged回调内部

    @Override
    public void onHiddenChanged(boolean hidden) {
        super.onHiddenChanged(hidden);
        if (!hidden) {
            // refresh your data here
        }
    }

推荐阅读