Android使用Google SignInButton谷歌登录按钮时图标不显示如何解决

Android开发使用官方SignInButton谷歌登录按钮组件时,出现图标无法正常显示的问题,对应布局代码如下:
<com.google.android.gms.common.SignInButton android:layout_width="match_parent" android:layout_height="wrap_content" tools:layout_editor_absoluteX="142dp" tools:layout_editor_absoluteY="453dp" />
可以按以下顺序排查修复:
- 先确认依赖配置正确。
SignInButton属于Google Play服务认证组件,没有引入对应依赖会直接导致资源加载失败,打开模块级的build.gradle文件,在dependencies闭包中添加对应依赖,版本号和你项目中使用的GMS版本保持一致即可:
implementation 'com.google.android.gms:play-services-auth:20.7.0'
添加完成后同步Gradle,确保依赖下载完成。
- 不要直接以Android Studio布局预览的效果作为判断依据。
SignInButton的资源渲染强依赖设备上的Google Play服务运行时,布局预览窗口没有完整的运行环境,经常会出现空白、图标丢失的预览错误,直接把应用安装到搭载完整Google Play服务的真机/官方模拟器上运行,查看实际显示效果,绝大多数预览异常在真机运行时都会自动消失。 - 检查按钮布局参数是否合规。你当前设置的
wrap_content高度本身没有问题,但如果后续修改布局时把按钮高度压缩到48dp以下,按钮内置的图标会因为空间不足被裁剪、隐藏。官方推荐按钮最小高度为48dp,你也可以通过自定义属性指定按钮的尺寸样式和配色:
<com.google.android.gms.common.SignInButton android:layout_width="match_parent" android:layout_height="wrap_content" app:buttonSize="wide" app:colorScheme="light" tools:layout_editor_absoluteX="142dp" tools:layout_editor_absoluteY="453dp" />
按钮尺寸支持三个可选值:标准尺寸、宽版(带"Sign in with Google"文字)、纯图标版,按需选择即可,避免因为样式不匹配导致布局错位。
- 确认测试设备环境正常。部分版本的
SignInButton会在首次运行时拉取最新的官方按钮资源,如果测试设备的Google Play服务未正常激活、无法连通谷歌服务网络,会出现资源加载失败显示空白的问题,测试前先确认设备上的Google Play服务状态正常。
内容的提问来源于stack exchange,提问作者jso
相关产品推荐
相关产品推荐

