如何为每个单独的网址保存自己的滚动位置?

时间:2019-02-09 23:33:48

标签: android webview android-webview

如何分别保存每个webview.getUrl();它自己的webview.getScrollX();和webview.getScrollY();? 如何为每个单独的网址保存自己的滚动位置?

例如,对于www.example.com,我保存其webview.getScrollX();。和webview.getScrollY();在一个书签中。 对于另一个www.yahoo.com,我保存其webview.getScrollX();。和webview.getScrollY();在另一个书签中。 当我从书签中检索这些网站时,webview会滚动到其自己的webview.getScrollX和webview.getScrollY。

在我的代码中,我保存webview.getScrollX();和webview.getScrollY();对于每个网站,当我从书签中检索它们时,它们始终滚动到同一位置,而不是滚动到自己的webview.getScrollX和webview.getScrollY。

private final String SCROLL_XX = "XX";
private final String SCROLL_YY = "YY";
private boolean ScrollToBookmark = false;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Remember.init(this, getPackageName());

 }

保存webview.getUrl();滚动位置

    private void insert() {



    Some code to save webview.getUrl and webview.getTitle

    Remember.putInt(SCROLL_XX, webView.getScrollX());
    Remember.putInt(SCROLL_YY, webView.getScrollY());


}

滚动到保存的滚动位置

    private void initWebView() {
    webView.setWebViewClient(new WebViewClient() {

        @Override
        public void onPageFinished(final WebView view, String url) {
            super.onPageFinished(view, url);
            progressBar.setVisibility(View.GONE);
           if (ScrollToBookmark) {
                ScrollToBookmark = false;

                view.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        int x = Remember.getInt(SCROLL_XX, 0);
                        int y = Remember.getInt(SCROLL_YY, 0);
                        view.scrollTo(x, y);
                        dialog.dismiss();
                    }
                }, 1000);
            }
            invalidateOptionsMenu();
        }

   }

检索保存的webview.getUrl();和它自己的滚动位置

    @Override
     public void onItemSelected(AdapterView<?> parentView, View 
     selectedItemView, int position, long id) {

    }
        Some code
        if(c.moveToFirst()){
            //txturl.setText("");
            txturl.invalidate();
            txturl.setText("");


            txturl.setText(c.getString(1));
            String cargafav = txturl.getText().toString();
            if (!Remember.containsKey(SCROLL_XX)& 
            (!Remember.containsKey(SCROLL_YY))) {
                return;
            }
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setCancelable(false);
            builder.setView(R.layout.layout_loading);
            dialog = (AlertDialog) builder.create();
            dialog.show();
            ScrollToBookmark = true;
            webView.loadUrl(cargafav);

0 个答案:

没有答案