Android Studio 3.0布局引用重开标签页后失效问题
嘿,这个问题我之前帮朋友排查过,AS 3.0确实有这个小坑,给你几个靠谱的解决思路:
关掉编辑器的自动替换功能
打开AS的设置(Windows是File > Settings,Mac上选Android Studio > Preferences),找到Editor > Layout Editor选项,看看有没有类似“打开布局时自动将资源引用转为硬编码值”的开关,直接把它关掉就行。这个功能本来是方便预览的,但有时候会“自作主张”改你的代码,关掉就好了。清理AS缓存重启
缓存乱了也会搞出这种奇怪的问题。你可以点顶部菜单栏的File > Invalidate Caches / Restart,选Invalidate and Restart,等AS重启完再试试,很多小bug都能这么解决。检查资源文件的语法
如果你的dim.xml或者strings.xml里有语法错误(比如标签没闭合、dimen值写错了单位),AS解析不了这些资源,就会自动用硬编码值替代引用。仔细检查这两个文件,确保每个资源的定义都是规范的,比如<dimen name="width">2dp</dimen>、<string name="username_hint">请输入用户名</string>这种格式,没有拼写错误或者标签遗漏。切换布局编辑器模式再保存
有时候Design模式的预览渲染出问题,也会导致资源引用被替换。你可以在布局文件的底部切换到Text模式,手动保存一下,再切回Design模式试试,说不定就能恢复正常的资源引用了。考虑升级AS版本
说实话AS 3.0是比较老旧的版本了,官方已经修复了很多这类bug。如果上面的方法都不管用,建议升级到更新的稳定版本(比如3.5以上的版本),新版本的布局编辑器稳定性要好很多,这种自动替换的问题基本不会再出现。
内容的提问来源于stack exchange,提问作者bgly

