簡體   English   中英

match_parent布局參數不起作用?

[英]match_parent layout parameter doesn't work?

我正在嘗試為ArrayAdapter創建視圖。 這就是我的做法:

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

編輯

好吧,這個問題看起來有點像平台錯誤,因此我不得不添加一個監聽器,該監聽器的大小可以調整“確定”按鈕。

rowView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
    @Override
    public void onGlobalLayout() {
        int height = rowView.getHeight();
        btn.setHeight(height);
    }
});

我仍在尋找更好的解決方案。

您應該嘗試layout.addView(btn,lp);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM