java无法在安卓 WebView中滚动到顶部
我在安卓上做我的第一个项目,因为我创建了一个浏览器,我添加了进度条和滑动刷新选项
当我滚动到页面底部时,我绑定到滚动到页面顶部,但是当我尝试滚动到顶部时,会触发swipe refresh
选项
问题:
- 无法滚动到页面顶部李>
有人帮我解决这个问题吗
Main。xml
<?xml version="1.0" encoding="utf-8"?>
<安卓.support.v4.widget.SwipeRefreshLayout xmlns:安卓="http://schemas.安卓.com/apk/res/安卓"
xmlns:app="http://schemas.安卓.com/apk/res-auto"
xmlns:tools="http://schemas.安卓.com/tools"
安卓:layout_width="match_parent"
安卓:layout_height="match_parent"
安卓:orientation="vertical"
安卓:id="@+id/mySwipeLayout"
tools:context=".MainActivity">
<LinearLayout
安卓:orientation="vertical"
安卓:layout_width="match_parent"
安卓:layout_height="match_parent">
<LinearLayout
安卓:id="@+id/myLinearLayout"
安卓:orientation="horizontal"
安卓:layout_width="match_parent"
安卓:layout_height="3dp">
<ProgressBar
安卓:id="@+id/myProgressBar"
安卓:layout_weight="0.1"
style="@style/Base.Widget.AppCompat.ProgressBar.Horizontal"
安卓:layout_width="match_parent"
安卓:layout_height="match_parent" />
<ImageView
安卓:id="@+id/myImageView"
安卓:src="@mipmap/ic_launcher"
安卓:layout_weight="0.9"
安卓:layout_width="match_parent"
安卓:layout_height="match_parent" />
</LinearLayout>
<WebView
安卓:id="@+id/myWebView"
安卓:layout_width="match_parent"
安卓:layout_height="match_parent"></WebView>
</LinearLayout>
</安卓.support.v4.widget.SwipeRefreshLayout>
主要活动。java
package com.sanoj.goproxy;
import 安卓.graphics.Bitmap;
import 安卓.support.v4.widget.SwipeRefreshLayout;
import 安卓.support.v7.app.AppCompatActivity;
import 安卓.os.Bundle;
import 安卓.view.Menu;
import 安卓.view.MenuInflater;
import 安卓.view.MenuItem;
import 安卓.view.View;
import 安卓.webkit.WebChromeClient;
import 安卓.webkit.WebView;
import 安卓.webkit.WebViewClient;
import 安卓.widget.ImageView;
import 安卓.widget.LinearLayout;
import 安卓.widget.ProgressBar;
import 安卓.widget.Toast;
public class MainActivity extends AppCompatActivity {
ProgressBar superProgressBar;
ImageView superImageView;
WebView superWebView;
LinearLayout superLinearLayout;
SwipeRefreshLayout superSwipeLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
superSwipeLayout = findViewById(R.id.mySwipeLayout);
superLinearLayout = findViewById(R.id.myLinearLayout);
superProgressBar = findViewById(R.id.myProgressBar);
superImageView = findViewById(R.id.myImageView);
superWebView = findViewById(R.id.myWebView);
superProgressBar.setMax(100);
superWebView.loadUrl("http://safebrowser.tk");
superWebView.getSettings().setJavaScriptEnabled(true);
superWebView.setWebViewClient(new WebViewClient(){
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
superLinearLayout.setVisibility(View.VISIBLE);
super.onPageStarted(view, url, favicon);
}
@Override
public void onPageFinished(WebView view, String url) {
superLinearLayout.setVisibility(View.GONE);
superSwipeLayout.setRefreshing(false);
super.onPageFinished(view, url);
}
});
superWebView.setWebChromeClient(new WebChromeClient(){
@Override
public void onProgressChanged(WebView view, int newProgress) {
super.onProgressChanged(view, newProgress);
superProgressBar.setProgress(newProgress);
}
@Override
public void onReceivedTitle(WebView view, String title) {
super.onReceivedTitle(view, title);
getSupportActionBar().setTitle(title);
}
@Override
public void onReceivedIcon(WebView view, Bitmap icon) {
super.onReceivedIcon(view, icon);
superImageView.setImageBitmap(icon);
}
});
superSwipeLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
superWebView.reload();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.super_menu, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case R.id.menu_back:
onBackPressed();
break;
case R.id.menu_forward:
onForwardPressed();
break;
case R.id.menu_refresh:
superWebView.reload();
break;
}
return super.onOptionsItemSelected(item);
}
private void onForwardPressed(){
if (superWebView.canGoForward()){
superWebView.goForward();
} else {
Toast.makeText(getApplicationContext(), "Can't Go Further..!", Toast.LENGTH_LONG).show();
}
}
@Override
public void onBackPressed() {
if (superWebView.canGoBack()){
superWebView.goBack();
}else {
finish();
}
}
}
共 (0) 个答案