当前位置: 首页 > 知识库问答 >
问题:

ScrollTo() 方法在 ScrollView 中的 WebView 中不起作用

茅才
2023-03-14

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

window.scrollTo(0, y);

如果我将WebView放在ScrollView中(如下面的代码所示),WebView将不会滚动(即使命令< code>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被调用:

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 + "')");
        }
    });
}

共有1个答案

汪安然
2023-03-14

您不应该在滚动视图中为Web视图使用scrollTo()方法,因为*如果您在滚动视图下使用Web视图,那么所有滚动函数都将应用于其父级(用于滚动视图)*因此我们必须在父级滚动视图上应用方法而不是Web视图。

所以使用滚动视图的fullScroll()方法。因此,申请线下为您的滚动视图。

用于滚动顶部

 YourScrollView.fullScroll(yourScrollView.FOCUS_UP);

用于向下滚动

YourScrollView.fullScroll(yourScrollView.FOCUS_DOWN);
 类似资料:
  • 在我的网页移动视图中,我可以垂直和水平滚动,但这总是从左上角开始。现在,我想使用window将视口设置为我的自定义位置。滚动到或类似的东西。窗滚动似乎只适用于桌面浏览器。 知道我怎么解决吗?

  • 问题内容: 在我的应用程序中,我正在使用,并且在其中,我正在使用方法,但它不起作用,没有弹出窗口。 在清单文件中我添加了 在活动文件中我添加了 在布局xml文件中,我添加了 任何线索如何启用全中? 更新资料 谢谢标记文件中 的方法现在正在工作:)。 现在有两个问题: 1:我正在加载的html文件中使用a ,并尝试在其中使用印地语语言字体,但是当我尝试写印地语文本时,它显示为符号(如矩形符号[])。

  • 本文向大家介绍HTML5 标签在Android Webview中不起作用,包括了HTML5 标签在Android Webview中不起作用的使用技巧和注意事项,需要的朋友参考一下 使用Android的Mediaplayer播放音频。您需要从用HTML文件编写的JavaScript调用Android函数。 以下是我的JavaScript:

  • 我正在尝试将视图寻呼机放在表格行中,并且我设置了视图寻呼机布局高度匹配父级。结果是视图寻呼机根本没有高度。我必须在dp中设置布局高度,以便视图寻呼机可以具有高度。但是我在视图寻呼机中膨胀的内容是动态的,因此我无法在xml内部设置高度。滚动视图已经填满了屏幕,但视图页码器根本没有任何高度。有没有办法解决这个问题?(有问题的视图寻呼机是具有 id pager_problem) 编辑: 好了,现在在我更

  • 我正在使用演示APi(http://dummy.restapiexample.com/update) 我有一个响应类UpdateResponse 我有一个Api类和一个APIInterface 和对话框而不是主活动 在APIInterface中使用PUT方法有一个@path(id)和三个@fields(name、salary、age) 下面是UpdateResponse类代码 Api接口代码如下

  • 问题内容: 嗨,我想从我的android webview 打开此URL http://3864.cloud- matic.net/ ,我尝试了很多方法,但该应用程序甚至没有打开mainActivity。我尝试过的如下。 请告诉我我错了。阿里 问题答案: 这是最受欢迎的解决方案,我不确定在哪里将URL设置为open。请提出建议。