ArrayAdapter에 대한보기를 만들려고합니다. 이것이 내가하는 방법입니다.match_parent 레이아웃 매개 변수가 작동하지 않습니까?
FrameLayout rowView = new FrameLayout(context);
rowView.setBackgroundColor(Color.BLUE);
RelativeLayout.LayoutParams lp2 = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.MATCH_PARENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
lp2.setMargins(0, 0,
context.getResources()
.getDimensionPixelSize(R.dimen.activity_divider_small), 0);
lp2.addRule(RelativeLayout.LEFT_OF, R.id.textView1);
ImageView view = new ImageView(context);
int size = context.getResources().getDimensionPixelSize(
R.dimen.image_avatar_size);
FrameLayout.LayoutParams lp0 = new FrameLayout.LayoutParams(size, size);
view.setBackgroundResource(R.drawable.va);
rowView.addView(view, lp0);
Button btn = new Button(context);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.MATCH_PARENT);
lp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
lp.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
lp.addRule(RelativeLayout.ALIGN_PARENT_TOP);
btn.setBackgroundColor(Color.RED);
int padding = context.getResources().getDimensionPixelSize(
R.dimen.activity_margin);
btn.setPadding(padding, padding, padding, padding);
btn.setText(okButtonText);
btn.setId(R.id.textView1);
RelativeLayout layout = new RelativeLayout(context);
layout.addView(rowView, lp2);
layout.addView(btn, lp);
의도적으로 OK 캡션으로 textView를 늘리려고합니다. 어떤 이유로 버튼이 부모와 잘 어울리지 않습니다. 누군가 내 실수로 나를 가리킬 수 있습니까?
수정 상황이 정말 이상하게 변합니다. ALIGN_PARENT_TOP 및 ALIGN_PARENT_BOTTOM 매개 변수를 모두 설정하면 뷰가 수직으로 늘어나는 것으로 알려져 있습니다. 내 경우, 뷰는 레이아웃의 맨 아래에 배치됩니다 (ALIGN_PARENT_BOTTOM 만 설정 한 경우처럼).
이
내가 무엇을 얻을 수 있습니다 :http://img13.imageshack.us/img13/3323/jqs.png
편집
글쎄,이 문제가 좀 플랫폼 벌레처럼 보이는, 그래서 OK 버튼 크기를 조정 리스너를 추가했다 .
rowView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
int height = rowView.getHeight();
btn.setHeight(height);
}
});
나는 여전히 더 나은 해결책을 찾고 있습니다.
왜 XML 파일을 만들지 않았습니까? –
사실 저는 그랬지만 같은 문제가있어서 수동으로 처리하려고했습니다. – user1256821
대신에'setBackground()'를 시도해 보셨습니까? 그리고 XML 파일에서'android : src' 대신에'android : background'를 사용합니다. – yugidroid