Android - Как создать FAB программно?

У меня есть приложение с полным пользовательских представлений. Когда я пытаюсь создать FAB программно, он выдает ошибку

Причина: java.lang.IllegalArgumentException: необходимо использовать тему Theme.AppCompat (или ее потомок) с библиотекой дизайна.

Вот мой код

private FloatingActionButton getFAB() {
    FloatingActionButton fab = new FloatingActionButton(getContext());
    fab.setBackgroundDrawable(ContextCompat.getDrawable(getContext(), R.drawable.ic_add_white_24dp));
    return fab;
}

Это тема моего приложения.

    <!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
</style>

Пожалуйста, помогите мне.

1 ответ

Исправлено с помощью оболочки темы. Но все же я удивлен использованием ContextThemeWrapper

private FloatingActionButton getFAB() {
    Context context = new android.support.v7.internal.view.ContextThemeWrapper(getContext(), R.style.AppTheme);
    FloatingActionButton fab = new FloatingActionButton(context);
    return fab;
}
Другие вопросы по тегам