如何去除MaterialButton左右内边距,实现文本单行完整显示?
你的核心问题是按钮宽度被layout_weight和0dp限制,导致文本超出空间后被截断,调整inset、padding无法改变这个约束逻辑。以下是几种可行方案:
方案1:让按钮自适应文本宽度
把固定权重的宽度设置改为自适应文本,按钮会根据内容自动调整宽度,确保文本完整显示:
<com.google.android.material.button.MaterialButton android:id="@+id/btn_continue" android:layout_width="wrap_content" android:layout_height="70dp" android:backgroundTint="@drawable/button_background_tint_selector" android:fontFamily="@font/roboto" android:text="Continue Continue Continue Continue Continue Continue" android:textColor="@color/white" android:textSize="14sp" android:singleLine="true" app:layout_constraintBottom_toBottomOf="parent" />
方案2:保留按钮宽度约束,让文本自动缩小适配
如果必须保持按钮占满指定空间,可开启自动文本缩放功能,让文本自动缩小以适配按钮宽度:
<com.google.android.material.button.MaterialButton android:id="@+id/btn_continue" android:layout_width="0dp" android:layout_weight="1" android:layout_height="70dp" android:backgroundTint="@drawable/button_background_tint_selector" android:fontFamily="@font/roboto" android:text="Continue Continue Continue Continue Continue Continue" android:textColor="@color/white" android:textSize="14sp" android:singleLine="true" android:autoSizeTextType="uniform" android:autoSizeMinTextSize="10sp" <!-- 可自定义最小字号 --> app:layout_constraintBottom_toBottomOf="parent" />
方案3:允许文本换行(需求允许的情况下)
如果不需要强制单行,移除singleLine属性,文本会自动换行显示,避免被省略:
<com.google.android.material.button.MaterialButton android:id="@+id/btn_continue" android:layout_width="0dp" android:layout_weight="1" android:layout_height="70dp" android:backgroundTint="@drawable/button_background_tint_selector" android:fontFamily="@font/roboto" android:text="Continue Continue Continue Continue Continue Continue" android:textColor="@color/white" android:textSize="14sp" app:layout_constraintBottom_toBottomOf="parent" />
内容的提问来源于stack exchange,提问作者JR Tan
相关产品推荐
相关产品推荐

