Android Studio登录模板EditText下划线样式在Emulator不显示问题求助
原因说明
Android Studio自带的Login Activity模板默认使用TextInputLayout嵌套TextInputEditText的Material风格结构,你直接给EditText设置自定义下划线背景时,会被TextInputLayout自带的默认样式覆盖,布局预览未完整加载Material主题的覆盖规则所以显示正常,运行时系统优先应用TextInputLayout自带样式就会出现异常。
解决方案
你可以根据需求选择以下两种方案:
- 方案一:保留Material组件原生交互(浮动标签、错误提示联动等效果),无需自定义shape
直接给布局中的TextInputLayout添加如下属性即可修改下划线样式:
<com.google.android.material.textfield.TextInputLayout ... app:boxStrokeColor="#fff" app:boxStrokeWidth="2dp" app:boxStrokeWidthFocused="2dp">
- 方案二:使用你自定义的shape作为背景
先给TextInputLayout添加属性app:boxBackgroundMode="none"关闭自带的背景样式,再将你编写的shape背景设置给其嵌套的TextInputEditText即可生效。
缓存排查
如果修改后仍不生效,先执行「Clean Project → Rebuild Project」,再卸载模拟器中已安装的旧应用重新运行,避免增量编译缓存导致样式未更新。
内容的提问来源于stack exchange,提问作者Marcones
相关产品推荐
相关产品推荐

