gpt4 book ai didi

javascript - 当 WebView 位于 ScrollView 内时,ScrollTo() 方法不起作用

转载 作者:行者123 更新时间:2023-11-28 04:52:03 26 4
gpt4 key购买 nike

我有一个 WebView,它正在使用 JS 加载 HTML 。从 WebView 我调用 JS 函数,它正在寻找 HTML 中的一些文本。在此函数中,我有一个命令将 WebView 滚动到下一个匹配文本:

window.scrollTo(0, y);

如果我将 WebView 放置在 ScrollView 内部(如下面的代码所示),WebView 将不会滚动(即使命令 webView.scrollTo(x,y) 也不会滚动它)。但是如果我将其放置在 ScrollView 之外 - 滚动到下一个位置就可以正常工作。但我必须在 ScrollView 中使用 WebView

请帮我解决这个问题。我必须做什么?这是我的布局代码:

<ScrollView
android:id="@+id/articleScrollView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbars="none">

<LinearLayout
android:id="@+id/articleBodyLinearLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<include layout="@layout/fragment_main_article"/>

<LinearLayout
android:id="@+id/article_body"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true"
android:orientation="vertical">

<WebView
android:id="@+id/article_web_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="3dp"
android:clickable="true"
android:textSize="16dp">
</WebView>
</LinearLayout>
</LinearLayout>
</ScrollView>

这是调用JS的 Activity 方法的代码:

public void searchInText(View view) {
final String textToSearch = editTextSearchInText.getText().toString();

webSettings.setJavaScriptEnabled(true);
article_web_view.loadDataWithBaseURL(null, issue.getHtmlBody(), "text/html", "UTF-8", "UTF-8");

article_web_view.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url) {
view.loadUrl("javascript:MyApp_HighlightAllOccurencesOfString('" + textToSearch + "')");
}
});
}

最佳答案

您不应该在 ScrollView 内对 Web View 使用scrollTo() 方法,因为*如果您在 ScrollView 下使用 Web View ,则所有滚动功能将应用于其父级(对于 ScrollView )*

所以使用 ScrollView 的fullScroll()方法。因此,请为您的 ScrollView 应用下面的行。

用于滚动顶部>>

 YourScrollView.fullScroll(yourScrollView.FOCUS_UP);

向下滚动>>

YourScrollView.fullScroll(yourScrollView.FOCUS_DOWN);

关于javascript - 当 WebView 位于 ScrollView 内时,ScrollTo() 方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42836406/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com