【问题标题】:Webview not start at top inside nestedscrollviewWebview 不在nestedscrollview 内的顶部开始
【发布时间】:2018-11-29 04:32:15
【问题描述】:

我制作了一个简单的 webview 应用程序,它将 webview 保存在 nestedscrollview 中。当我进入 Facebook 并滚动到底部并单击查看更多故事时。下一页从底部或中间开始,而不是从顶部开始。

怎么办?我不想删除nestedscrollview。

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.widget.NestedScrollView 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
  <WebView
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:id="@+id/webview"
  />
</android.support.v4.widget.NestedScrollView>

MainActivitiy.java

public class MainActivity extends AppCompatActivity {
WebView webView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        webView=(WebView)findViewById(R.id.webview);
        webView.loadUrl("https://www.facebook.com");

        webView.setWebChromeClient(new WebChromeClient() {

    @Override
    public void onProgressChanged(WebView view,
            int newProgress) {

        if (newProgress >= 100) {

            webView.scrollTo(0,0);
        }

        super.onProgressChanged(view, newProgress);
    };

});
        webView.setWebViewClient(new WebViewClient() {
  public void onPageFinished(WebView view, String url)
  { super.onPageFinished(view, url);
    view.scrollTo(0,0);
  }
});

    webView.setPictureListener(new PictureListener() {
    @Override
    public void onNewPicture(WebView view, Picture picture) {
         webView.scrollTo(0, 0);

    }
});

    }
}

【问题讨论】:

  • 不,兄弟。我已经检查过了

标签: android webview android-nestedscrollview


【解决方案1】:

此特定答案包含您需要的信息: https://stackoverflow.com/a/9392142/2698179

webView.setWebViewClient(new WebViewClient(){

    @Override
    public void onPageFinished(WebView view, String url) {
        // TODO Auto-generated method stub
        super.onPageFinished(view, url);
        webView.scrollTo(0, 0);
    }

  }
);

页面加载完成后将在网站上滚动到 0,0,但显然不可靠,答案包含替代方案:

webView.setPictureListener(new PictureListener() {

    @Override
    public void onNewPicture(WebView view, Picture picture) {
         webView.scrollTo(0, 0);

    }
});

加载完成后,其中任何一个都会将 webview 移动到页面的左上角。

【讨论】:

  • 你能提供更多细节吗?什么不起作用?它根本不编译?你得到一个错误?什么都没发生?
  • 我添加了你的代码。但它仍然 webview 不是从顶部开始的。
  • 你能用现在的代码更新你的问题吗?
  • 当我添加代码时。他们显示“您的帖子似乎包含未正确格式化为代码的代码。请使用代码工具栏按钮或 CTRL+K 键盘快捷键将所有代码缩进 4 个空格。有关更多编辑帮助,请单击 [?] 工具栏图标”为什么会这样
  • 可能是因为你所有的代码行都没有缩进 4 个空格。
猜你喜欢
  • 2020-03-29
  • 2023-04-02
  • 2017-05-18
  • 2021-10-20
  • 1970-01-01
  • 2022-09-27
  • 1970-01-01
  • 2018-04-11
  • 2016-04-20
相关资源
最近更新 更多