3

現在、JakeWhartonのViewPagerIndicatorライブラリを使用しています。私はそれにいくつかを追加しFragmentsました、そしてうまく前後にスワイプすることができます。から離れて複数のパネルをスワイプするFragmentと、それは削除されます(onDestroyView()呼び出されます)。逆に、から1つのパネル内をスワイプするFragmentと、追加されます(onCreateView()呼び出されます)。

Fragmentが破壊されたり、再び追加されたりすると、Viewsかつてそこにあったものが破壊され、空白の画面に戻ります。追加するLinearLayoutがあります。再作成されたときにを呼び出すと、正しいカウントが示されますが、再度表示するために何を呼び出すかがわかりません。追加してみましたが、うまくいきませんでした。FragmentTextViews.size()LinearLayout<LinearLayout>.requestLayout()onResume()

関連するコードを投稿する必要があるかどうか教えてください。ただし、これは私のフラグメントに固有のものではないと思います。

編集:元々、私は対処しなければならないと思っていonSavedInstanceState()ましたが、これまでレイアウト全体を保存したことはありませんでした。私が持っていたもう1つのアイデアは、のを繰り返してLinkedListからTextViews、それらをに追加することLinearLayoutでした。これは私にすでに親を持っているというエラーを与えましたView、それは理にかなっています。

TextViewを追加する方法は次のとおりです。

public void addQuickLook(QuickLookView v)
{
    mViews2.add(v); //LinkedList of QuickLookViews
    mMeterLayout.addView(v); //Adding to the LinearLayout
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
    return inflater.inflate(R.layout.fragment_quicklook, container, false);
}

@Override
public void onActivityCreated(Bundle savedInstanceState)
{
    super.onActivityCreated(savedInstanceState);
    mMeterLayout = (LinearLayout) getActivity().findViewById(R.id.quickLookList);
}
4

1 に答える 1

3

私はこれを解決したと思います。私がしたことはdestroyItem()、私のメソッドをオーバーライドし、FragmentPagerAdapter空白のままにしました。開発者のページをFragmentPagerAdapter詳しく読んで、期待される動作を確認する必要があります。特に、すべてがメモリに読み込まれ、ビューが表示されFragmentなくなったときにメモリを節約するためにビューが強制終了されます。これが正しいアプローチかどうかはわかりませんが、今のところは問題なく機能します。

于 2012-07-31T15:13:52.410 に答える