我有一个单独的活动,可以打开其中的片段。这些片段之间有相互的事务。例如,该活动包含3个片段(片段1、片段2、片段3)。片段1打开片段2,片段2打开片段3。按下后键时,调用popBackStack()
。但是,没有一个生命周期方法会在新的可见片段上调用,比如iOS中的viewWillAppear()
。使用哪种方法可以检测到该片段是否可见?
我已经试过onResume()
、getUserVisibleHint()
和onAttach()
了。
@Override
public void onResume() {
super.onResume();
}
@Override
public boolean getUserVisibleHint() {
return super.getUserVisibleHint();
}
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
}
它们都不会被调用。我很感谢你的帮助。
发布于 2019-07-30 21:37:53
应调用onResume()方法。
当您将片段添加到活动中时,您需要将事务添加到后端堆栈,以便将其包含在后端导航堆栈中。
下面是一个示例代码:
FragmentTransaction transaction = this.getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_container, yourFragment).addToBackStack(null);
transaction.commit();
transaction.addToBackStack(null);
https://stackoverflow.com/questions/57272213
复制相似问题