android studio 升级 Android Studio Dolphin | 2021.3.1 Patch 1后,xml布局预览界面报错

一开始以为是那些警告导致的,有很多黄色的xml警告,比如命名的名字不是英文,或者设置了各种颜色值警告,或者系统要求你添加 contentDescription

其实不是这些,因为之前就存在,没个布局不可能都加一堆废属性,看着就很不爽,后来发现一个红色的警告,自己没当回事

我查了一下整个布局,这个就是 ShapeableImageView 才会用到的 material 属性,而且我已经加过了

于是我又找了一下相关的api,发现跟我有个相似的api,一开始我是用的 shapeAppearanceOverlay,但是其实还有一个 shapeAppearance 属性

于是我看了下,同样可以达到效果,不过 shapeAppearanceOverlay 是一个处理覆盖层的属性,我抱着试一试的态度,改成了 shapeAppearance ,结果好了

另外还有个坑爹的,就是很多自定义控件,需要判断 View.isInEditMode() ,这个方法表示 xml 布局文件预览可视化编辑,as预览时不需要执行具体代码,所以需要跳过,

否则也无法预览,只能说恶心,这个方法要么更新控件,新版本自带处理过了,要么降级

如果是自己定义的view还好,可以修改,但是这里用的是 MaterialCardView,虽然布局可以看xml自己判断位置调整布局,但是没预览是真的难受

当然,你也可以不用这个库,直接用CardView,也可以避免这个问题,我只能说真的很无语

View.isInEditMode

还有一种情况就是我们的自定义控件,无法预览,会提示你需要添加 isInEditMode,在编辑模式下跳过其它不相关的逻辑
一般就是在构造函数中直接判断

你会发现xml中会随着你的改动刷新异常,只要根据异常在相应的位置判断一下就行了

 

有时候xml刷新很慢,添加了还是会提示错误,这个时候不用管,是as的问题,运行几次或者重启打开就好了

posted on 2022-11-09 17:50  翻滚的咸鱼  阅读(2011)  评论(0编辑  收藏  举报