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