我创建了一个viewpager和一个包含2个视图的片段的适配器。当我点击第一个视图时,我想让片段中的第二个视图不可见。我在视图上实现了这个方法来处理点击事件
@Override
public boolean onSingleTapConfirmed(MotionEvent e) {
ImageFragment fragment = (ImageFragment) ImageGallery.fragmentmanager.findFragmentByTag("android:switcher:"+R.id.imagerpager+":"+position);
if (fragment != null) {
fragment.setTransparency();
}
return super.onSingleTapConfirmed(e);
}
我得到的所有片段都是空的。为了确保我的对象不为null,以下工作,但是对于错误的(预加载的)片段
ImageFragment fragment = (ImageFragment) ImageGallery.fragmentmanager.findFragmentById(R.id.imagepager);
我很确定我必须在我的适配器上实现FragmentTransition才能使fragmentmanager.findFragmentByTag正常工作。但我无法弄清楚如何做到这一点。我的适配器看起来像
public class GalleryAdapter extends FragmentStatePagerAdapter {
private int mCount = pictureUrlList.size();
public GalleryAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
ImageFragment fragment = ImageFragment.newInstance(position);
return fragment;
}
@Override
public int getCount() {
return mCount;
}
public void setCount(int count) {
if (count > 0 && count <= 10) {
mCount = count;
notifyDataSetChanged();
}
}
@Override
public int getItemPosition(Object object) {
return POSITION_NONE;
}
}
有人能告诉我该怎么做吗?