Android Studio 3.1.2中Layout Tools属性失效原因咨询
嘿,我之前在Android Studio 3.1.2版本里也碰到过一模一样的问题——明明已经正确引入了tools命名空间,但像tools:text、tools:listitem这类属性就是会被标红,提示无法识别。给你几个亲测有效的解决办法:
更新SDK相关工具
打开File > Settings > Appearance & Behavior > System Settings > Android SDK,切换到「SDK Tools」标签页,检查并更新Android Support Repository和Android SDK Build-Tools到对应3.1.2版本的推荐版本,更新完成后重启Android Studio。清理缓存并重启IDE
这是解决IDE各种奇怪识别问题的万金油操作:点击File > Invalidate Caches / Restart,选择「Invalidate and Restart」,让IDE彻底清理缓存后重启,很多时候就能恢复正常识别。调整命名空间顺序
虽然你已经正确声明了tools命名空间,但可以尝试把它移到根布局的最前面(android命名空间之后),有时候命名空间的声明顺序会影响IDE的识别逻辑。调整后的布局代码如下:<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v7.widget.RecyclerView android:id="@+id/recycler" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" tools:text="Test Text" /> </FrameLayout>考虑升级或降级IDE版本
Android Studio 3.1.2确实存在一些已知的小bug,如果上面的方法都没能解决问题,可以考虑升级到后续的稳定版本(比如3.2.x系列),或者暂时降级到3.1.1版本,这个tools属性识别的问题在这些版本中已经被修复。
内容的提问来源于stack exchange,提问作者nandu

