2016-10-13 4 views
0

は、私は、ユーザーがアプリを離れるとそのページのスクロール位置と私のwebViewの状態を保存し、それらを復元たい。そのため、復元された位置にスクロールされた復元されたWebviewコンテンツをユーザーが読み続けることができます。 /復元セーブ機能ウェブビューのスクロール位置を復元しますか?ユーザーが再びアプリを開いたときに

private int calculateProgression(WebView content) { 
    int positionTopView = content.getTop(); 
    int contentHeight = content.getContentHeight(); 
    int currentScrollPosition = content.getScrollY(); 
    int percentWebview = (currentScrollPosition - positionTopView)/contentHeight; 
    return percentWebview; 
} 

:あなたが位置を救うことができる

@Override 
    protected void onSaveInstanceState(Bundle outState) { 
    outState.putInt("position", calculateProgression(webView)); 
    super.onSaveInstanceState(outState); 
    } 

    @Override 
    protected void onRestoreInstanceState(Bundle savedInstanceState) { 
    super.onRestoreInstanceState(savedInstanceState); 
    scrollPos = savedInstanceState.getFloat("position"); 
    } 

答えて

0

位置を算出し

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_book); 
    webView = (WebView)this.findViewById(R.id.webView); 
    if (savedInstanceState != null) { 
     int positionY = Math.round(scrollPos); 
     webView.scrollTo(0, positionY); 
    } esle { 
     //do something 
    } 

機能:

はここで私が使用している方法ですOnDestroyメソッド内のSharedPreferencesを検索し、OnCreate方法。

EDIThereを述べたように、OnPauseはデータではなく、OnDestroyを格納する場所でなければなりません。

+0

私はそれを試してみます:) –

+0

ありがとうございました:) ... –

+0

申し訳ありませんが、ユーザーが最近のアプリからアプリをスワップすると、onDestroyメソッド!!!!! –

関連する問題