2013-07-25 2 views
1

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); 
    } 
}); 

나는 여전히 더 나은 해결책을 찾고 있습니다.

+0

왜 XML 파일을 만들지 않았습니까? –

+0

사실 저는 그랬지만 같은 문제가있어서 수동으로 처리하려고했습니다. – user1256821

+0

대신에'setBackground()'를 시도해 보셨습니까? 그리고 XML 파일에서'android : src' 대신에'android : background'를 사용합니다. – yugidroid

답변

0

시도해보십시오. layout.addView (btn, lp);

+0

아니, 변경된 사항이 없습니다. – user1256821

+0

그리고 TextView를 Button으로 변경하면? – Zoubiock

+0

버튼의 크기가 조절되지 않습니다. – user1256821

관련 문제