我希望仅在单击选项卡时加载我的片段。那就是我在每个片段上调用一个web服务,所以我希望只有当用户点击特定标签时才调用该webservice;加载片段。
我的片段附加到视图寻呼机。
我在我的片段中覆盖了以下方法:setUserVisibleHint
override fun setUserVisibleHint(isFragmentVisible: Boolean) {
super.setUserVisibleHint(true)
if (this.isVisible) {
// we check that the fragment is becoming visible
if (isFragmentVisible && !isLoadOnce) {
callAPI(param)
isLoadOnce = true
}
}
}
变量设置为:片段类中的private var isLoadOnce = false。
我有3个片段,问题是当我的活动弹出时,第一个片段是可见的,如果我点击最后一个选项卡是加载第三个片段的第三个选项卡,那么Web服务根本不会调用的任何事情都没有。
但是当我点击第二个片段然后点击第三个片段时,是的,webservice然后只调用
所以每当用户点击每个片段(2号片段或3号片段)时,我都想调用Web服务!有人可以弄清楚我做错了什么吗?
我认为至少有两种解决方案可以解决您的问题:
如果这对您有用,请告诉我!
viewpager通常会加载侧视图以提供流畅的滑动体验。
您可以限制viewpager使用加载视图
viewpager.setOffScreenLimit(0)