android - 检测片段何时再次获得焦点
问题描述
在我的应用程序中,我有两个片段,当单击第一个片段中的按钮时,我加载第二个片段并将前一个片段添加到后台堆栈。
getActivity().supportFragmentManager.beginTransaction()
.add(R.id.frame_layout, fragment2)
.addToBackStack(null)
.setTransition(FragmentTransaction.TRANSIT_NONE)
.commit()
结果是按下后会关闭第二个片段并将我返回到前一个片段,这正是我想要的。但是,此时应刷新第一个片段上的某些元素。当用户单击返回并返回到第一个片段时,我如何知道刷新该片段中的数据?在这种情况下是否有诸如 onResume() 之类的方法?
解决方案
我假设你在第一个片段中调用它,你应该调用hide
try 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
}
}
推荐阅读
- jenkins - 使用 github webhook 将更改推送到特定分支时如何触发 jenkins 作业?
- java - Spring Boot Raw WebSocket 设置主体
- javascript - 使用 api 显示列表的 Angular 8 问题
- html - Google Drive 和翻译脚本
- google-apps-script - 是否可以动态更改 gmail 插件图标?
- java - 如何使用外部映射将 json 转换为 json
- sql - TSQL - 每天返回前 10 名客户
- javascript - AngularJS 日期过滤器添加了意外的时区偏移量?
- flutter - 在颤动中更改语言后如何刷新应用程序当前屏幕?
- html - 如何在 Vue js 中将相对图像 url 转换为绝对图像 url?