В моем приложении у меня есть страница HTML, загруженная в WebView. Я реализую кнопку switchView, которая загружает одну и ту же страницу, но на другом языке. Я хочу сохранить положение прокрутки WebView при переключении языка. После некоторых исследований SO, я реализовал следующее.Ведение позиции прокрутки в WebView
Это первая WebView
switchB = (Button)findViewById(R.id.button1);
webView = (WebView) findViewById(R.id.page1);
webView.loadUrl("file:///android_asset/try.html");
switchB.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent mIntent = new Intent (MainActivity.this, SwitchedView.class);
mIntent.putExtra("scroll", calculateProgression(webView));
startActivity(mIntent);
}
});
}
private float calculateProgression(WebView content) {
float positionTopView = content.getTop();
float contentHeight = content.getContentHeight();
float currentScrollPosition = content.getScrollY();
float percentWebview = (currentScrollPosition - positionTopView)/contentHeight;
return percentWebview;
}
С этим, я передаю Свиток к следующей деятельности, которая является WebView загрузки той же страницы.
Intent i = getIntent();
Bundle extras = i.getExtras();
float scrollp = extras.getFloat("scroll");
WebView webView = (WebView) findViewById(R.id.page2);
webView.loadUrl("file:///android_asset/try2.html");
float webviewsize = webView.getContentHeight() - webView.getTop();
float positionInWV = webviewsize * scrollp;
int positionY = Math.round(webView.getTop() + positionInWV);
webView.scrollTo(0, positionY);
Это не указывает положение прокрутки в положение прокрутки. Я делаю что-то неправильно?
не wokring для меня –