Как сохранить для каждого отдельного URL свою позицию прокрутки? - PullRequest
0 голосов
/ 10 февраля 2019

Как сохранить для каждого отдельно webview.getUrl ();свой собственный webview.getScrollX ();и webview.getScrollY () ;?Как сохранить для каждого отдельного URL свою собственную позицию прокрутки?

Пример, для www.example.com я сохраняю его webview.getScrollX ();и webview.getScrollY ();в одной закладке.Для другого www.yahoo.com я сохраняю его webview.getScrollX ();и webview.getScrollY ();в другой закладке.И когда я извлекаю эти сайты из закладки, прокрутка веб-просмотра переходит к их собственным 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...