Веб-просмотр не начинается сверху внутри nestedscrollview - PullRequest
0 голосов
/ 28 ноября 2018

Я сделал простое приложение для веб-просмотра, которое хранит веб-просмотр внутри 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);

    }
});

    }
}

1 Ответ

0 голосов
/ 28 ноября 2018

Этот конкретный ответ содержит необходимую информацию: 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);

    }
});

Любой из этих способов переместит веб-просмотр в верхний левый угол страницы после завершения загрузки.

...