动态添加自定义视图时不显示

时间:2015-09-19 19:17:07

标签: android layout dynamic view

在这里不知所措。搜索范围广泛,无法找到这个问题的答案......

我有一个XML布局,我有一个相对布局,我用它作为不同视图的占位符。

<RelativeLayout
    android:id="@+id/relVariableLayoutPlaceHolder"

    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"

    android:background="@color/white"
    >

</RelativeLayout>

在我的活动中,我有一个按钮供用户按下,当他们按下它时,我希望创建并动态添加自定义ClockView。请注意_variableLayout方法在onCreate方法中完美设置:

public void onStartTimeClick(View view)
{
    //Clean up any left over views
    _variableLayout.removeAllViews();

    //Add clock view
    ClockView clockView = new ClockView(_context);
    _variableLayout.addView(clockView);
}

问题是当按下按钮时,屏幕上没有任何反应。但是,当我点击屏幕上的TextView时,我可以看到它。

我在点击TextView之前和之后上传了一些图片: http://imgur.com/a/9lebv

我认为这与绘制时钟视图后屏幕没有刷新有关但我已经尝试了invalidate()requestLayout()的每一个组合。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

出于历史目的,我觉得我应该提一下,在经过大量调试后,我发现我的问题出现在onMeasure的{​​{1}}和onLayout函数中。基本上它们形成得很差,并且没有正确地测量子视图以使ClockView函数正确处理。

一旦我解决了这些问题,一切都按预期进行。