今天我在使用Android Navigation Component时,在
这太烦人了。用户可能已经向下滚动了几分钟,但每次回来后都被抛到了最上面。我能否防止它重新加载/滚动到顶部?
示例代码可以如下所示:
如果
我尝试添加标志以仅加载一次,但从
请注意,在实际应用中,我使用
另外,我提供的示例代码是用Kotlin编写的,但如果有Java解决方案,则也会感激不尽。
在从嵌套目标返回时,是否可能不重新加载
Fragment
中的WebView
遇到了问题。
在我的情况下,在Fragment1
中,有一个放置在WebView
下方的按钮。用户需要向下滚动才能点击它。点击后,会打开一个新的目标(Fragment2
)。然后,当用户返回到Fragment1
时,WebView
会重新加载,并且视口会再次滚动到顶部。这太烦人了。用户可能已经向下滚动了几分钟,但每次回来后都被抛到了最上面。我能否防止它重新加载/滚动到顶部?
示例代码可以如下所示:
class Fragment1 : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
webView.loadData(getString(R.string.some_very_long_html), "text/html", "UTF-8")
buttonBelowWebView.setOnClickListener {
navigateToFragment2()
}
}
}
如果
WebView
包含视频,则加载可能需要长达 5 秒钟。这是非常糟糕的体验。我尝试添加标志以仅加载一次,但从
Fragment2
返回时,WebView
是空的:class Fragment1 : Fragment() {
var loaded = false
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
if(!loaded) {
webView.loadData(getString(R.string.some_very_long_html), "text/html", "UTF-8")
loaded = true
}
}
}
请注意,在实际应用中,我使用
ViewModel
并从rest api观察数据,但问题仍然存在。另外,我提供的示例代码是用Kotlin编写的,但如果有Java解决方案,则也会感激不尽。
在从嵌套目标返回时,是否可能不重新加载
WebView
并重置滚动位置?
AndroidX
的 WebView 还是平台自带的? - Blundellandroid.webkit.WebView
。有没有AndroidX
的替代品? - xinaiz