Android Jetpack项目中Button的drawableStart左侧图片不显示求助
我来帮你分析下这个问题,结合你使用的Material Components按钮样式,大概率是组件属性兼容或者配置问题导致的,给你几个具体的排查和解决方向:
改用Material Button专属的图标属性
你给按钮设置的是Widget.MaterialComponents.Button.OutlinedButton样式,这类Material组件的按钮并不完全兼容原生的android:drawableStart属性,官方推荐用app:icon来设置左侧图标,同时可以通过app:iconPadding调整图标和文字的间距。修改示例如下:<Button android:id="@+id/documento_btn_cancella" style="@style/Widget.MaterialComponents.Button.OutlinedButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="@dimen/text_margin" android:elevation="@dimen/app_cardview_default_elevation" android:text="@string/documento_cancella" app:icon="@drawable/ic_action_delete_24dp" app:iconPadding="8dp" app:iconGravity="start" app:layout_constraintStart_toStartOf="@+id/documento_card" app:layout_constraintTop_toBottomOf="@+id/documento_info1" />检查图标资源的配置
确认你的图标资源是否正常:- 矢量图资源需要在模块的
build.gradle中开启支持:vectorDrawables.useSupportLibrary = true - 图标是否放在正确的
drawable目录下,有没有适配不同分辨率的版本(mdpi/hdpi等) - 图标本身是否存在透明区域缺失、颜色与背景重合的情况
- 矢量图资源需要在模块的
排查样式覆盖问题
检查你使用的Widget.MaterialComponents.Button.OutlinedButton基础样式,是否有隐藏图标相关的配置(比如设置了app:icon="@null"),如果有需要调整或者在Button标签上显式覆盖这些属性。统一按钮样式(可选优化)
注意到你第三个按钮documento_btn_vedi没有使用Material的OutlinedButton样式,建议统一使用相同的基础样式,避免出现组件行为不一致的情况。
内容的提问来源于stack exchange,提问作者xcesco
相关产品推荐
相关产品推荐

