Android片段隐藏秀OnHide / OnShow?

时间:2011-08-15 18:02:33

标签: android user-interface hide show fragment

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

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

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

2)google也提供了一些示例,您可以使用构造函数创建片段并对其进行充气。如果在该片段中调用getActivity(),则getActivity()返回null的方式很奇怪。

所以如果我采取第一种方法,我必须隐藏并显示碎片。 那么为什么google不提供像onHide或onShow这样的片段的钩子 这样我们就可以正确处理事情了,如果用我们实现的函数清理自己并明确调用它们。

3 个答案:

答案 0 :(得分:30)

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

即可
public void onHiddenChanged(boolean hidden) {
}

在你的片段中。

答案 1 :(得分:0)

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

  @Override
public void setUserVisibleHint(boolean isVisibleToUser) {
    super.setUserVisibleHint(isVisibleToUser);
    if(isVisibleToUser){
      //When fragment is visible
    }
    Log.i("my_fragment","setUserVisibleHint: "+isVisibleToUser);
}

答案 2 :(得分:-3)

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

@覆盖 public void setMenuVisibility(final boolean visible)