android - Webview 不在nestedscrollview 内的顶部开始
问题描述
我制作了一个简单的 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>
MainActivity.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);
}
});
}
}
解决方案
此特定答案包含您需要的信息: 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 移动到页面的左上角。
推荐阅读
- javascript - Mongoose 对自定义字符串 _id 的引用
- reactjs - 更新未在反应前端显示的已更改项目的状态
- python - 涵盖所有案例的最少项目数
- python - Aiohttp异步获取代理请求不起作用
- javascript - 如何使用 JavaScript 设置弹出窗口的小数位数?
- git - 跨源分支 git repo(Bitbucket 和 GitHub)
- go - vim-go with coc.nvim:如何重命名包?
- docker - 使用 terraform 将 docker 镜像推送到 ECR
- asp.net-mvc - 我无法让我的 AspNet 项目在 https 中运行
- jquery - Nuxt.js 中的 jQuery 或为锚标记设置 onClick 事件侦听器