Android:使锚链接在 ScrollView 内的 WebView 中工作

Posted

技术标签:

【中文标题】Android:使锚链接在 ScrollView 内的 WebView 中工作【英文标题】:Android: Make anchor links work in WebView inside ScrollView 【发布时间】:2021-01-28 22:18:47 【问题描述】:

我的 html 中有锚链接(例如:<a href="#P12"/>),我将其加载到 WebView 中,并且此 WebView 位于 NestedScrollView 中。当我暂时禁用 NestedScrollView 时,因为每个人都建议在锚链接无法正常工作时这样做,这些锚链接可以正常工作。但是,由于多种原因,我的布局确实需要这个 NestedScrollView:

    它有一个CollapsingToolbarLayout,需要设置app:layout_behavior="@string/appbar_scrolling_view_behavior; WebView 上下有布局元素; 这些元素必须作为一个整体一起滚动。

预期的行为是单击锚链接时内容会跳转到网页的正确部分。实际行为是内容跳转到某个随机位置,并且您无法再滚动整个页面(顶部或底部被截断)。

是否有可能使这些锚链接在我位于 NestedScrollView 内的 WebView 内工作?

在 *** 上,我发现 one question 与这个类似,但不幸的是它没有答案,而且它是从 2017 年开始的,所以我非常怀疑有人会很快回答它。

【问题讨论】:

为了让WebViewlayout_behavior 正常工作,我一直在努力争取几个工作周,但运气不好……遗憾地以固定的Toolbar 结束。另请注意,将WebView 放在NestedScrollView 中会导致WebView 绘制整个内容(例如,所有图像都会触发图像的延迟加载),这是非常低效的 在HERE这个话题中找到了我的问题 【参考方案1】:

因为当我偶然发现一个没有答案的问题时让我很沮丧,我会回答我自己的问题,这样其他人就会知道我是如何解决这个问题的。

坏消息是,这个特定问题无法解决。至少,到 2021 年还没有。

我所在的公司和客户决定做的是改变这个屏幕的整个实现。整个屏幕现在是一个 WebView,而不仅仅是屏幕的一部分是一个 WebView。

【讨论】:

我找到了方法,见:***.com/a/70439752/3671844

以上是关于Android:使锚链接在 ScrollView 内的 WebView 中工作的主要内容,如果未能解决你的问题,请参考以下文章

WordPress 分页 - 添加锚链接

如何使 Android ScrollView 褪色边缘始终可见?

如何使锚链接不可点击或禁用?

使用 <base> 时使锚链接指向当前页面

如何使标签内的锚链接不可点击或禁用?

ScrollView 根本不滚动