我希望仅在单击选项卡时才加载片段。那就是我在每个片段上都调用一个Web服务,所以我希望仅当用户单击特定选项卡时才调用该Web服务。加载片段。
“我的片段”被附加到视图寻呼机上。
我在片段中覆盖了以下方法: 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服务不会打电话。
但是当我单击第二个片段,然后单击第三个片段时,是的,然后Web服务仅调用
因此,每当用户单击每个片段(2号片段或3号片段)时,我都想调用Web服务! 有人可以找出我在做什么错吗?
答案 0 :(得分:0)
我认为您的问题至少有两种解决方案:
让我知道这是否对您有用!
答案 1 :(得分:0)
viewpager通常会加载侧视图以提供流畅的滑动体验。
您可以限制viewpager使用
加载视图 viewpager.setOffScreenLimit(0)