自定义View不能显示?来看看Studio怎么说!
最近刚更新了Android Studio 3.0 RC1,虽然没怎么具体看更新日志,还是推荐一发。从两个版本以前发现自定义控件不能显示了!这就很尴尬,写布局的时候预览看不到整个布局还是很别扭的。与其忍受,不如花点时间解决掉它!
任何事都是有原因的。既然我们的View不能显示,就说明这个View不符合显示的条件。打开一个带有自定义View的布局查看。
如图所示,在预览中没有看到我所定义的View。
点击这个查看出现问题的原因。
不难发现,在我的View中出现了类型转换异常。IDE认为你的View不合乎规则了所以不予显示出来。
回到View查看相应的代码:
72行的代码是
((Activity) getContext()).getWindow().setStatusBarColor(backColor);
没错,是对context进行了强转。
实际使用中这么写完全没有问题,因为我们知道这个context就是activity。但是ide很明确告诉你这个context并不是activity的,你这么写就是不行。
怎么办?ide给了一个tips:
这时候需要按照tips进行操作。
如果不知道怎么用这个api,直接搜索这个api的名字就行。
其实这api的意思就是,使用此方法在预览时跳过你的代码(即使是有错误的)。
经过百度之后,得到使用方法是
if (isInEditMode()){ return; } ((Activity) getContext()).getWindow().setStatusBarColor(backColor);
make project之后看布局,这个地方一定要make一下!一定!
熟悉的view又回来了。