Ответ 1
Кажется, что вы создаете число изображений, добавляя каждый из них к держателю изображения. Тем не менее, я не видел никакой части, которую вы фактически присоединяете к держателям изображений к основному макету. Поэтому в основном они создаются, но не добавляются нигде. Предположим, что ваш R.layout.fragment имеет только FrameLayout с id frameLayout1. Ниже было мое предложение:
public class ViewPagerFragment extends Fragment {
private ViewPagerActivity mViewPagerActivity;
private String mId;
public ViewPagerFragment(String id) {
mId = id;
}
@Override
public void onAttach(Activity activity) {
if (activity instanceof ViewPagerActivity) {
mViewPagerActivity = (ViewPagerActivity)activity;
}
super.onAttach(activity);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment, container, false);
}
// IMPORTANT PART! Here we will add images after fragment is inflated and instantiated
@Override
public void onActivityCreated(Bundle savedInstanceState) {
// Get the root layout of fragment, we called it frameLayout1
FrameLayout fl = (FrameLayout)(this.getActivity.findViewById(R.id.frameLayout1));
int[] image_array = {
R.drawable.elebutton,
R.drawable.right,
R.drawable.middle,
};
for (int i =0;i<image_array.length;i++){
ImageButton b1 = new ImageButton(getActivity());
b1.setId(100 + i);
b1.setImageResource(image_array[i]);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
if (i > 0) {
lp.addRule(RelativeLayout.BELOW, b1.getId() - 1);
}
b1.setLayoutParams(lp);
ImageHolder ih = new ImageHolder(getActivity());
ih.addView(b1);
fl.addView(ih);
}
}
// End of important part
public class ImageHolder extends FrameLayout {...
}