我使用的是kotlin中的方法
override fun setUserVisibleHint (isVisibleToUser: Boolean) {
super.setUserVisibleHint (isVisibleToUser)
if (isVisibleToUser && isResumed) {
getTask ()
}
}
但是它告诉我它已经折旧了,在java中已经折旧了。
这一行setUserVisibleHint
如何解决或替换该警告?
最佳答案
- You can now set a max Lifecycle state for a Fragment by calling
setMaxLifecycle()
on a FragmentTransaction. This replaces the now deprecatedsetUserVisibleHint()
.FragmentPagerAdapter
andFragmentStatePagerAdapter
have a new constructor that allows you to switch to the new behavior. (b/129780800)
查看 FragmentPagerAdapter
(这同样适用于 FragmentStatePagerAdapter
),您会注意到默认构造函数也已被弃用、替换第二个构造函数采用 int 行为
,可以是两个值之一:
已弃用的
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()
- 您应该同步更改两者。
关于java - 当Android方法被贬值时我该怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56137023/