android重新加载组件,Java - android导航组件不断重新加载WebView_java_开发99编程知识库...

今天我遇到了WebView在Fragment中使用Android Navigation Component的问题,在我的例子中,在Fragment1中,在WebView下面有按钮,用户需要向下滚动才能单击它,点击它后,一个新目的地被打开了(Fragment2 ),当用户回到Fragment1时,WebView重新加载,viewport再次滚动到顶部。

它非常讨厌,用户可能已经向下滚动了几分钟,在返回后,总是把他扔到最顶端。我可以阻止它重新加载/滚动回到顶部?

例子代码的简单程度如下所示: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

}

}

}

另外,我提供的示例代码是用Kotlin编写的,但是,如果有Java解决方案,也非常棒。

是否可以重新加载WebView,并且重新导航回到原来滚动的位置?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值