Плавающая кнопка действия в виде квадрата

В настоящее время я работаю над приложением для Android и использую последнее дополнение Floating Action Button. Однако после компиляции необходимых библиотек и добавления fab в мой XML-файл он выглядит как квадрат, в то время как я ожидаю, что это будет круг, как и везде.

Я использую тот же базовый код для реализации фабрики, что и в Интернете, и мой результат - квадрат, а их - красивый круг.

Вот мой код:

<android.support.design.widget.FloatingActionButton
    android:id = "@+id/fab"
    android:layout_width = "wrap_content"
    android:layout_height = "wrap_content"
    android:layout_gravity = "end|bottom"
    android:layout_margin = "16dp"
    android:src = "@drawable/ic_person_add_black_24dp" />

Вот скриншот того, что отображается:

Плавающая кнопка действия в виде квадрата

Как вывести фабу (добавить сюда контакт) кружком?

Спасибо,

1
1
2 451
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Попробуйте этот код XML, это автоматически сгенерированный код Android studio из шаблона

<android.support.design.widget.FloatingActionButton
    android:id = "@+id/fab"
    android:layout_width = "wrap_content"
    android:layout_height = "wrap_content"
    android:layout_gravity = "bottom|end"
    android:layout_margin = "@dimen/fab_margin"
    app:srcCompat = "@android:drawable/ic_dialog_email" />

Надеюсь это поможет.

Это дает мне тот же результат. Я также попытался использовать вкладку «Дизайн» в Android Studio и щелкнуть напрямую по опции для фабрики, и она по-прежнему отображается в виде квадрата. Есть ли еще какая-нибудь идея?

ChanceVI 29.05.2018 17:53

Какую версию библиотеки поддержки вы используете? также попробуйте добавить app:borderWidth = "0dp"

Naveen T P 29.05.2018 17:55

Вот они: compile 'com.android.support:appcompat-v7:24.2.1' compile 'com.android.support:design:24.2.1' Кроме того, для SdkVersion установлено значение 27

ChanceVI 29.05.2018 18:29

Попробуйте установить одну из тем appcompat для своей фабрики или для родительского макета: android:theme = "@style/Theme.AppCompat"

Этот работает на FAB. не могли бы вы рассказать о Extended FAB?

Faizan Haidar Khan 29.12.2020 11:49

Материальные компоненты, вероятно, должны использовать материальные темы, и я предполагаю, что мы говорим о com.google.android.material.floatingactionbutton.ExtendedFlo‌​atingActionButton. Вы можете попробовать Widget.MaterialComponents.ExtendedFloatingActionButton или ?attr/extendedFloatingActionButtonStyle (согласно deoc это по умолчанию). Для более подробной информации вы можете взять lool в исходном коде xml стилей материалов github.com/material-components/material-components-android/b‌ lob /…

Luke 30.12.2020 14:54
Ответ принят как подходящий

Я не знаю, решило ли это это, но я немного перестал работать над этим проектом для другого, и у меня не было этой проблемы в моем другом проекте.

AndroidStudio, похоже, создает квадратную фабрику, если ваша активность расширяет Activity, а не AppCompatActivity.

Даже если ваша деятельность расширяет AppCompatActivity, вам также может потребоваться построить проект (Ctrl + F9), прежде чем вы сможете увидеть, что предварительный просмотр правильно отрисован.

Вы можете использовать материал FAB с Theme.MaterialComponents.

 <com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
            android:id = "@+id/fab_Send"
            android:layout_width = "wrap_content"
            android:layout_height = "wrap_content"
            android:layout_alignParentEnd = "true"
            android:layout_centerVertical = "true"
            android:contentDescription = "@string/app_name"
            android:gravity = "center"
            android:text = "@string/send"
            android:theme = "@style/Theme.MaterialComponents"
            android:textAllCaps = "false"
            android:textColor = "@color/colorWhite"
            android:textSize = "@dimen/_12sdp"
            app:backgroundTint = "@color/colorPrimary"
            app:borderWidth = "0dp"
            android:fontFamily = "@font/play_fair_display_black"
            app:useCompatPadding = "true"
            tools:ignore = "RelativeOverlap" />

Вот результат

Причина, по которой это происходит, заключается в том, что вы используете другую тему для своего приложения, отличную от той, которая используется FAB. В моем случае я использую Theme.AppCompat.Light.NoActionBar для своего приложения, но FAB не поддерживает это.

Другие вопросы по теме