自分でビューを削除する必要はありません。各フラグメント ビューは、表示されなくなったときにonDestroyView()
メソッドで自動的に破棄されFragment
ます (表示されていないときにビューにアクセスしようとすると、NullPointerException が発生するのも不思議ではありません)。次にonCreateView()
、フラグメントが戻って表示されると、メソッド内で再度作成されます。
詳細については、フラグメントのライフサイクルをお読み
ください。
とにかく、フラグメントにアクセスしてビューに対してやりたいことをしたい場合は、この種のコード (ここから取得) を 内に実装することをお勧めしますFragmentPagerAdapter
:
private Map<Integer, Fragment> mPageFragments = new HashMap<Integer, MyFragment>();
@Override
public Fragment getItem(int index) {
Fragment myFragment = MyFragment.newInstance();
mPageFragments.put(index, myFragment);
return myFragment;
}
@Override
public void destroyItem(View container, int position, Object object) {
super.destroyItem(container, position, object);
mPageFragments.remove(position);
}
public MyFragment getFragment(int key) {
return mPageFragments.get(key);
}
次に、(たとえば)の a 内でOnPageChangeListener
、ViewPager
次を使用してフラグメントとビューを取得できます。
MyFragment fragment = adapter.getFragment(position);
if (fragment.getView() != null) {
// ...
}