11

我问这个因为我有点好奇。

1 ) 如果片段已经在 xml 中创建,大多数谷歌演示会通过其 ID 找到片段。

因此,如果我们采用这种方法,我们显示片段的方式是隐藏它并显示它,因为片段已经创建。

2) google 还提供了一些示例,您可以在其中使用构造函数创建片段并对其进行膨胀。如果在该片段中使用 getActivity() 调用它,这就像 getActivity() 返回 null 一样奇怪。

所以如果我采用第一种方法,我必须隐藏和显示片段。那么为什么谷歌不提供像 onHide 或 onShow 这样的片段的钩子,以便我们可以正确处理事情,而不是使用我们明确实现和调用的函数进行清理。

4

3 回答 3

34

如果你想在onHide/上挂钩操作,onShow只需覆盖

public void onHiddenChanged(boolean hidden) {
}

在你的片段中。

于 2011-09-14T14:17:40.220 回答
0

通过 Overrinde setUserVisibleHint,您可以轻松跟踪它。

  @Override
public void setUserVisibleHint(boolean isVisibleToUser) {
    super.setUserVisibleHint(isVisibleToUser);
    if(isVisibleToUser){
      //When fragment is visible
    }
    Log.i("my_fragment","setUserVisibleHint: "+isVisibleToUser);
}
于 2017-02-05T07:44:55.410 回答
-3

我重写了下面的函数来确定片段是显示还是隐藏。

@Override public void setMenuVisibility(最终布尔可见)

于 2013-10-09T12:05:30.870 回答