在这里输了。搜索了很远,无法找到这个问题的答案...动态添加时不显示自定义视图
我有一个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()
我能想到。有任何想法吗?
感谢您的建议。我实际上在ClockView对象中声明了布局参数,但是我删除了这个参数,并且试图用你的方式来确保。同样的结果。 –
您可以在Android设备上启用一些调试选项以查看正在呈现的内容。还有Android工具中的Hierarchy Viewer来检查它:http://developer.android.com/tools/help/hierarchy-viewer.html –
有趣的...当我点击Android工具中的Dump Hierarchy Button窗口中,ClockView出现在我的设备上。所以,这个观点显然存在,它只是最初没有在设备上显示。尽管如此,但至少这证明我并不疯狂。 –