Android 片段隐藏显示 OnHide/OnShow?
Posted
技术标签:
【中文标题】Android 片段隐藏显示 OnHide/OnShow?【英文标题】:Android fragments hide show OnHide/OnShow? 【发布时间】:2011-10-27 11:24:00 【问题描述】:我问这个是因为我有点好奇。
1 ) 如果片段已经在 xml 中创建,大多数谷歌演示会通过其 ID 找到片段。
因此,如果我们采用这种方法,我们显示片段的方式是隐藏它并显示它,因为片段已经创建。
2) google 还提供了一些示例,您可以在其中使用构造函数创建片段并对其进行膨胀。如果在该片段中调用 getActivity() ,这就像 getActivity() 返回 null 一样奇怪。
所以如果我采用第一种方法,我必须隐藏和显示片段。 那么为什么谷歌不提供像 onHide 或 onShow 这样的片段的钩子呢? 这样我们就可以正确处理事情,而不是使用我们实现和显式调用的函数进行清理。
【问题讨论】:
这篇文章有一些相关的答案:***.com/questions/10024739/… 【参考方案1】:如果你想在onHide
/onShow
上挂钩操作,只需覆盖
public void onHiddenChanged(boolean hidden)
在你的片段中。
【讨论】:
【参考方案2】:通过覆盖 setUserVisibleHint,您可以轻松跟踪它。
@Override
public void setUserVisibleHint(boolean isVisibleToUser)
super.setUserVisibleHint(isVisibleToUser);
if(isVisibleToUser)
//When fragment is visible
Log.i("my_fragment","setUserVisibleHint: "+isVisibleToUser);
【讨论】:
【参考方案3】:我重写了下面的函数来确定片段是显示还是隐藏。
@覆盖 public void setMenuVisibility(最终布尔可见)
【讨论】:
以上是关于Android 片段隐藏显示 OnHide/OnShow?的主要内容,如果未能解决你的问题,请参考以下文章