Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android碎片隐藏显示隐藏/显示?_Android_User Interface_Hide_Show_Fragment - Fatal编程技术网

Android碎片隐藏显示隐藏/显示?

Android碎片隐藏显示隐藏/显示?,android,user-interface,hide,show,fragment,Android,User Interface,Hide,Show,Fragment,我问这个是因为我有点好奇 1)如果片段已经用xml创建,大多数google演示都会通过其ID查找片段 因此,如果我们采用这种方法,我们显示片段的方式是隐藏它并显示它,因为片段已经创建 2) 谷歌也提供了一些例子,你可以用构造器创建片段,并将其膨胀。这种行为很奇怪,就像getActivity()在该片段中调用时返回null一样 因此,如果我采用第一种方法,我必须隐藏和显示片段。 那么为什么谷歌不提供像onHide或onShow这样的片段挂钩呢 因此,如果我们使用显式实现和调用的函数来清理自己,那么

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

1)如果片段已经用xml创建,大多数google演示都会通过其ID查找片段

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

2) 谷歌也提供了一些例子,你可以用构造器创建片段,并将其膨胀。这种行为很奇怪,就像getActivity()在该片段中调用时返回null一样

因此,如果我采用第一种方法,我必须隐藏和显示片段。 那么为什么谷歌不提供像onHide或onShow这样的片段挂钩呢
因此,如果我们使用显式实现和调用的函数来清理自己,那么我们可以正确地处理事情

如果您想在
onHide
/
onShow
上挂起op,只需覆盖

public void onHiddenChanged(boolean hidden) {
}

在您的片段中。

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

@凌驾
public void setMenuVisibility(最终布尔值可见)

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

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

这篇文章有一些相关的答案: