Snackbar - 无法在 snackbar 中设置边距

Snackbar - Cannot set margin in snackbar

Snackbar 边距根本不起作用。我正在尝试在小吃店布局的所有 4 个边设置边距。

协调器布局:

CoordinatorLayout.LayoutParams layoutParams = (CoordinatorLayout.LayoutParams) snackbarLayout.getLayoutParams();
layoutParams.setMargins(layoutParams.leftMargin + 20,layoutParams.topMargin + 20,layoutParams.rightMargin + 20,layoutParams.bottomMargin + 20);
snackbarLayout.setLayoutParams(layoutParams);

框架布局:

FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) snackbarLayout.getChildAt(0).getLayoutParams();
layoutParams.setMargins(layoutParams.leftMargin + 20,layoutParams.topMargin + 20,layoutParams.rightMargin + 20,layoutParams.bottomMargin + 20);
snackbarLayout.getChildAt(0).setLayoutParams(layoutParams);

None 这些方法都有效,我正在使用 AndroidX,并在 AndroidQ.[=13 上进行测试=]

import com.google.android.material.snackbar.Snackbar;

注意:frame布局方式设置internal margin(在布局里面),但是我想设置在外面

我找到了解决方案,我使用 Theme.MaterialComponents.NoActionBar 作为我的默认主题并且成功了!

<style name="AppTheme" parent="Theme.MaterialComponents.NoActionBar">