0

我有一个布局,我动态地向其中添加行。每行由一个 TextView 和一个 EditText 组成。现在 EditText 的文本是在运行时设置的,所以我希望它们都像 inout 表单一样整齐排列,其中文本字段在左侧,edittext 在右侧。

这是我的代码

for (int i = 0; i < itemsContainer.getChildCount(); i++) 
    {
        View v=itemsContainer.getChildAt(i);
        if(v instanceof ClickableButtonView)
        {
            TextView textView=((ClickableButtonView)v).getItem();
            if(textView.getWidth() > width)
            {
                width=textView.getWidth();
            }
        }

    }

    for (int i = 0; i < itemsContainer.getChildCount(); i++) 
    {
        View v=itemsContainer.getChildAt(i);
        if(v instanceof ClickableButtonView)
        {
            TextView textView=((ClickableButtonView)v).getItem();
            textView.setLayoutParams(new LayoutParams(width, LayoutParams.WRAP_CONTENT));
        }

    }

现在发生的事情是我的布局,带有 textview 折叠,只有右侧的元素占用了整个空间。我想遍历LineraLyout,找到占用最多空间的edittext并将所有edittext设置为占用完全相同的空间。这可以做到吗?

4

1 回答 1

1

Call this method in a loop to set the style for your textviews with any weights required. Giving weight 1 to all will make it equal.

private void setStyle(TextView textView, float weight) {
    textView.setSingleLine(false);
    textView.setWidth(0);
    textView.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
            LayoutParams.WRAP_CONTENT, weight));
    textView.setPadding(8, 0, 8, 0);
    textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
}
于 2012-08-30T10:23:06.133 回答