実際、私は常に次のようにフラグメントでビューを再利用しました。
private View mView = null;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
if (mView == null)
mView = inflater.inflate(R.layout.view);
return mView;
}
ビューページャーなどでうまくいきました。これで、単純なアクティビティでもフラグメントを使用し始めました。フラグメントをバックスタックに追加した場合にのみ、これは失敗します。java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
だから私の質問は:
- ビューの親を確認し、それを削除して新しい親に追加しても問題ありませんか?
- または、常にビューを再作成し、再利用しないようにする必要がありますか? はいの場合、なぜですか?
- ビューの再利用が失敗する他のポイントはありますか?