Android中如何调整Snackbar的文本字号与对齐方式?
修改Snackbar文本字号与对齐方式的实现方案
你只需要在现有代码中找到Snackbar内部的文本控件,直接对它设置字号和对齐属性即可,修改后的完整代码如下:
public static void showSnackBar(Activity activity, String message, View root) { int duration = 5000; Snackbar currentSnackBar = Snackbar.make(activity, root, message, Snackbar.LENGTH_INDEFINITE).setDuration(duration); View sbView = currentSnackBar.getView(); sbView.setBackgroundColor(ContextCompat.getColor(activity, R.color.colorBlue)); // 获取Snackbar内置的文本控件 TextView snackbarText = sbView.findViewById(com.google.android.material.R.id.snackbar_text); // 设置文本居中对齐 snackbarText.setGravity(Gravity.CENTER); // 增大文本字号,示例设为16sp,可按需调整数值 snackbarText.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16); FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) sbView.getLayoutParams(); params.gravity = Gravity.TOP | Gravity.CENTER_HORIZONTAL; sbView.setLayoutParams(params); currentSnackBar.setAnimationMode(BaseTransientBottomBar.ANIMATION_MODE_FADE); currentSnackBar.show(); }
关键修改说明:
com.google.android.material.R.id.snackbar_text是Material组件库中Snackbar文本控件的固定ID,无需自定义即可直接获取setGravity(Gravity.CENTER)直接将文本设置为居中对齐- 使用
TypedValue.COMPLEX_UNIT_SP作为字号单位,能确保字号在不同屏幕密度下的适配性,数值可根据需求自行调整
内容的提问来源于stack exchange,提问作者VanessaF
相关产品推荐
相关产品推荐

