Снэк-бар - Невозможно установить поле в снэк-баре - PullRequest
0 голосов
/ 13 апреля 2020

поля 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);

Ни одна из этих методы работают, я использую AndroidX и тестирую на AndroidQ .

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

Примечание. Метод макета кадра устанавливает внутреннее поле (внутри макет), но я хочу установить его снаружи.

1 Ответ

0 голосов
/ 27 апреля 2020

Я нашел решение, я использовал Theme.MaterialComponents.NoActionBar в качестве темы по умолчанию, и она сработала!

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