java - 当 Android 方法被贬值时,我该怎么办?
问题描述
我正在使用 kotlin 中的方法
override fun setUserVisibleHint (isVisibleToUser: Boolean) {
super.setUserVisibleHint (isVisibleToUser)
if (isVisibleToUser && isResumed) {
getTask ()
}
}
但它告诉我它在 Java 中已折旧、折旧。
这一行setUserVisibleHint
如何解决或替换该警告?
解决方案
根据片段发行说明:
- 您现在可以通过调用 FragmentTransaction 为 Fragment 设置最大生命周期状态
setMaxLifecycle()
。这取代了现在已弃用的setUserVisibleHint()
.FragmentPagerAdapter
并FragmentStatePagerAdapter
拥有一个允许您切换到新行为的新构造函数。( b/129780800 )
查看FragmentPagerAdapter
(同样适用于FragmentStatePagerAdapter
),您会注意到默认构造函数也已被弃用,取而代之的是第二个构造函数,该构造函数采用int behavior
可以是两个值之一的 an:
deprecated
BEHAVIOR_SET_USER_VISIBLE_HINT
,这是旧的行为,您可以setUserVisibleHint()
在页面更改时获得回调。BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT
仅调用当前 Fragment的新行为onResume()
- 仅发送所有其他 FragmentonStart()
。
因此,如果您切换到新的BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT
,那么您可以将您拥有的逻辑移动setUserVisibleHint()
到onResume()
:
override fun onResume() {
super.onResume()
getTask()
}
如果您继续为您的适配器使用已弃用的构造函数,那么您将需要继续使用setUserVisibleHint()
- 您应该同步更改两者。
推荐阅读
- reactjs - axios Get(React)后组件未重新渲染
- python - 当 if 语句为真时执行 else 块
- python - BS4 返回 [] 而不是想要的 HTML 标签
- python - 我不能让列表写成 txt (python)
- python - 如何使用 pandas 计算 groupby 函数的累积时间?
- c - 使用 OpenMP 任务指令计算 PI
- javascript - Javascript:从字符串数组中删除括号中的单词和单词
- aws-cli - 如何停止特定状态机的所有正在运行的 Step Functions?
- python - 如何自动选择数据进行曲线拟合
- vb.net - 有没有办法将文本从 textbox1.text 输入到网站的输入框?我在 Visual Basic 中使用铬浏览器