0

目前我有一个包含 SherlockFragment 的选项卡主机活动。在这些选项卡之一(片段)中,我想实现一个 ViewPager 来显示图像(ImageView)。我创建了一个 FragmentPagerAdapter 和 Fragment 以将其添加到 ViewPager 中。但是当我运行应用程序时,我的 ViewPager 显示为空,其中没有图像。

这是我的课程:

BonusFragment.Java

public class BonusFragment extends SherlockFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    getImages(); //Here I get the images for the viewpager
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    if (container == null) {
        return null;
    }

    View view = inflater.inflate(R.layout.bonus_frag, container, false);
    viewPager = (ViewPager) view.findViewById(R.id.pagr);
    Q.ADAPTER = new BonusPagerAdapter(getActivity()
            .getSupportFragmentManager(), myImagesList);
    viewPager.setAdapter(Q.ADAPTER);

    return view;
}

@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);

}

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

}
}

BonusPagerAdapter.Java

private ArrayList<Bitmap> items;

public BonusPagerAdapter(FragmentManager fm, ArrayList<Bitmap> items) {
    super(fm);
    this.items = items;
}

@Override
public int getCount() {
    return items.size();
}

@Override
public Fragment getItem(int position) {
    Bitmap bitmap = items.get(position);
    BonusImageFragment fragment = BonusImageFragment.newInstance("Glass 1");
    fragment.setBitmap(bitmap);

    return fragment;
}

@Override
public int getItemPosition(Object object) {
    return PagerAdapter.POSITION_NONE;
}

@Override
public void notifyDataSetChanged() {
    super.notifyDataSetChanged();
}
}

BonusImageFragment.Java

public class BonusImageFragment extends SherlockFragment {
private Bitmap bitmap;
public static final String EXTRA_MESSAGE = "EXTRA_MESSAGE";
private static String frag = "";

public BonusImageFragment() {
}

public static final BonusImageFragment newInstance(String message)

{

    frag = message;

    BonusImageFragment f = new BonusImageFragment();

    Bundle bdl = new Bundle(1);

    bdl.putString(EXTRA_MESSAGE, message);

    f.setArguments(bdl);

    return f;

}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {

    View v = inflater.inflate(R.layout.glass_item, container, false);
    ImageView image = (ImageView) v.findViewById(R.id.glass_view);
    image.setImageBitmap(bitmap);

    return v;
}

public Bitmap getBitmap() {
    return bitmap;
}

public void setBitmap(Bitmap bitmap) {
    this.bitmap = bitmap;
}

}

现在为什么我的 ViewPager 总是显示为空?

4

1 回答 1

0

Fixed it... I had to change "getActivity().getSupportFragmentManager()" in "BonusFragment.Java" with "getChildFragmentManager()"

于 2013-05-19T19:17:26.170 回答