【问题标题】:Dynamically modify a statically defined layout. Can't see the applied changes动态修改静态定义的布局。看不到应用的更改
【发布时间】:2016-02-11 00:20:03
【问题描述】:

我有一个静态定义的相对布局,高度设置为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;
}

【问题讨论】:

  • 您当然可以通过编程方式更新视图。这一直在发生。但是你还没有真正说出你想要做什么,展示你的布局,或者显示你所期望的与实际发生的不同的屏幕截图。

标签: android android-relativelayout


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-27
    • 2015-06-26
    • 2015-08-30
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多