Показывать только значок в плавающей кнопке действия - PullRequest
1 голос
/ 26 октября 2019

Я хочу показывать только свой нарисованный значок в FloatingActionButton (для минимального уровня API 14 и выше). Я попытался с src, background, изменил оттенок фона, borderWidth, все виды вещей, но ничего не помогло. Даже изменение размера моего рисунка не меняет его размер на дисплее. Он маленький и окружен фоном кнопок. Я хочу, чтобы это было больше и без фона.

PS. я не хочу делать это с ImageView и теряю все функции, которые предлагает FloatingActionButton.

 <com.google.android.material.floatingactionbutton.FloatingActionButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="20dp"
        android:layout_marginRight="20dp"
        android:layout_marginBottom="20dp"
        android:src="@drawable/ic_add_circle"
        app:borderWidth="0dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintRight_toRightOf="parent" />

Ответы [ 2 ]

2 голосов
/ 26 октября 2019

Попробуйте это:

<com.google.android.material.floatingactionbutton.FloatingActionButton
    android:id="@+id/faBtn"

    android:layout_width="wrap_content"
    android:layout_height="wrap_content"

    android:layout_marginEnd="20dp"
    android:layout_marginRight="20dp"
    android:layout_marginBottom="20dp"

    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintRight_toRightOf="parent"


    android:src="@drawable/ic_add_circle"

    app:fabCustomSize="@dimen/fabSize"
    app:fabSize="normal"
    app:maxImageSize="@dimen/fabImageSize"

    android:background="@null"
    android:backgroundTint="@null"

    app:backgroundTint="@null"
    app:elevation="0dp"
    android:elevation="0dp"
/>

Чтобы потрясающий объект не отбрасывал тень, вам нужно иметь высоту 0;не нашел другого выхода.

Хорошего дня.

0 голосов
/ 29 октября 2019

Просто используйте что-то вроде:

  <com.google.android.material.floatingactionbutton.FloatingActionButton
      android:id="@+id/fab_test"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"

      app:srcCompat="@drawable/baseline_search_24"
      app:tint="@color/selector_button"
      app:backgroundTint="@android:color/transparent"
      app:elevation="0dp"
      app:maxImageSize="@dimen/design_fab_size_mini"
      app:pressedTranslationZ="0dp"
      ../>
  • app:srcCompat, чтобы добавить значок (вместо android:src)
  • app:backgroundTint определить прозрачный цвет для вашего фона
  • app:elevation="0dp" удалить стирание
  • app:pressedTranslationZ="0dp" удалить TranslationZ для FAB при нажатии
  • app:maxImageSize определить максимальный размер значка. Вы можете использовать пользовательское значение или стандартные значения как design_fab_size_mini = 40dp или design_fab_size_normal = 56dp
  • app:tint: определите цвет вашего значка. Вы можете использовать селектор для обработки нажатого состояния.

Что-то вроде:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:color="@color/mycolor" android:state_enabled="true" android:state_pressed="true"/>
  <item android:color="@color/myPrimaryColor" android:state_enabled="true"/>
  <item android:alpha="0.12" android:color="?attr/colorOnSurface"/>
</selector>

Результат в нормальном и нажатом состоянии:

enter image description here enter image description here

...