This question already has answers here:
How to find a replacement for deprecated method?
(2个答案)
在11个月前关闭。
我在kotlin中使用该方法
但它告诉我它已贬值,在Java中已贬值。
这行setUserVisibleHint
如何解决或替换该警告?
enter image description here
如果继续对适配器使用不赞成使用的构造函数,则需要继续使用
(2个答案)
在11个月前关闭。
我在kotlin中使用该方法
override fun setUserVisibleHint (isVisibleToUser: Boolean) {
super.setUserVisibleHint (isVisibleToUser)
if (isVisibleToUser && isResumed) {
getTask ()
}
}
但它告诉我它已贬值,在Java中已贬值。
这行setUserVisibleHint
如何解决或替换该警告?
enter image description here
最佳答案
按照Fragment release notes:
现在,您可以通过在FragmentTransaction上调用setMaxLifecycle()
来为Fragment设置最大生命周期状态。这将替换现在已弃用的setUserVisibleHint()
。 FragmentPagerAdapter
和FragmentStatePagerAdapter
具有新的构造函数,可让您切换到新行为。 (b/129780800)
查看FragmentPagerAdapter
(对FragmentStatePagerAdapter
也是一样),您会注意到默认构造函数也已弃用,取而代之的是第二个构造函数,该构造函数采用int behavior
可以是两个值之一:
不推荐使用的BEHAVIOR_SET_USER_VISIBLE_HINT
,这是旧的行为,每当页面更改时,您都会在其中获得对setUserVisibleHint()
的回调。
新行为BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT
仅在当前Fragment上调用onResume()
-其他所有Fragment仅发送onStart()
。
因此,如果您切换到新的BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT
,则可以将setUserVisibleHint()
中的逻辑移动到onResume()
:
override fun onResume() {
super.onResume()
getTask()
}
如果继续对适配器使用不赞成使用的构造函数,则需要继续使用
setUserVisibleHint()
-您应同步更改两者。10-04 12:26