10
뷰 버튼의 일부인 프래그먼트에 이미지 버튼을 프로그래밍 방식으로 추가하려고합니다. 다른 코드를 시도했지만 Eclipse에서 아무런 오류가 없는데도 버튼이 표시되지 않습니다.프래그먼트에 버튼을 프로그래밍 방식으로 추가하기
나는 비슷한 질문을 발견했지만 here 대답은 내 버튼을 표시하는 데 도움이되지 못했습니다.
여기 내 코드입니다.
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) {
View v = inflater.inflate(R.layout.fragment, container, false);
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);
}
return v;
}
public class ImageHolder extends FrameLayout {
public ImageHolder(Context context) {
super(context);
initView(context);
}
public ImageHolder(Context context, AttributeSet attrs) {
super(context, attrs);
initView(context);
}
public ImageHolder(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
initView(context);
}
private void initView(Context context){
View.inflate(context, R.layout.fragment, this);
}
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
// TODO Auto-generated method stub
for(int i = 0 ; i < getChildCount() ; i++){
getChildAt(i).layout(l, t, r, b);
}
}
}