6

私は2つのフラグメントAとBを持っています。

AにはScrollViewが含まれています。下にスクロールしてボタンを押すと、フラグメントAがフラグメントBに置き換えられます。戻るボタンを押すと、フラグメントAが画面に戻りますが、ScrollViewは元の位置と同じではありませんFragment Bに切り替えました。

しかし、ListView を含む Fragment (ListFragment ではありません!) で同じことを行うと、スクロール位置が維持されます。

ScrollView に関係する特別なことはありますか?!

こんにちは、ダニエル。

4

2 に答える 2

0

Nutomic が言ったように、位置を保存する必要がありますが、それでも、ScrollView の高さは onCreate、onCreateView、または onActivityCreated で 0 になります。

最終的に OnPreDrawListener を使用しましたが、非常にうまく機能します。

scrollView.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
    @Override
    public boolean onPreDraw() {
        scrollView.scrollTo(0, position);
        mView.getViewTreeObserver().removeOnPreDrawListener(this);
        return true;
    }
});
于 2015-07-06T11:00:31.683 に答える