动态修改静态定义的布局。无法看到已应用的更改

时间:2016-02-11 00:20:04

标签: android android-relativelayout

我有一个静态定义的相对布局,其高度设置为wrap_content

我动态添加几个孩子。这看起来很好。

我现在必须添加更多的孩子并将其排在以前添加的孩子之上。这种作品。 (注意:一旦添加了之前添加的孩子,我才能这样做,因为我的新孩子依赖于他们的宽度。)

如果我将布局高度改为50dp vs wrap_content,我只能看到更改。

我尝试在保留布局上调用invalidate()postInvalidate()requestLayout(),但这不起作用。我不做什么?

public void layOutExtras(CustomView section) {
    if (section.isUnderlined()) {
        int labelOrientation = section.getLabelOrientation();
        View line = createLine(labelOrientation, section.getMeasuredWidth(), section.getId());
        addView(line);
    }
}

private View createLine(int orientation, int width, int viewId) {
    RelativeLayout.LayoutParams params = new LayoutParams(width, 4);
    params.addRule(ABOVE, viewId);
    params.addRule(ALIGN_RIGHT, viewId);
    View line = new ImageView(context);
    line.setBackgroundColor(Color.RED);
    line.setLayoutParams(params);
    return line;
}

1 个答案:

答案 0 :(得分:0)

Sounds like the issue I had a few days ago。问题可能是由于高度没有设置正确。尝试设置新视图和您正在修改的容器的最小高度。