Кнопка с плавающим действием не показывает векторный актив - PullRequest
4 голосов
/ 27 февраля 2020

Я пытаюсь настроить векторный актив в потрясающий. Но результат таков: enter image description here Как вы можете видеть, вектор есть, но далеко вниз и влево. Вот макет

    <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/colorBg"
    tools:context=".ui.main.fragments.HomeFragment">


    <com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@+id/fab_new_sale"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="16dp"
        android:layout_marginEnd="16dp"
        android:layout_marginBottom="16dp"
        app:backgroundTint="@color/colorAccent"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:srcCompat="@drawable/ic_cart_plus"
        android:scaleType="center"/>

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/rv_home_cards"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:foregroundGravity="center_vertical|center"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />


</androidx.constraintlayout.widget.ConstraintLayout>

И вот вектор:

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="200dp"
    android:height="200dp"
    android:viewportWidth="200"
    android:viewportHeight="200">
    <path
        android:fillColor="#FF000000"
        android:pathData="M165.1,119.28L75,119.28l2,9.84h82.48a7.37,7.37 0,0 1,7.19 9l-1.7,7.46a17.2,17.2 0,1 1,-19.54 3.19L81,148.77a17.21,17.21 0,1 1,-20.6 -2.63L38.85,40.62L17.38,40.62A7.38,7.38 0,0 1,10 33.24L10,28.33A7.37,7.37 0,0 1,17.38 21h31.5a7.38,7.38 0,0 1,7.23 5.9l2.81,13.77h120.7a7.37,7.37 0,0 1,7.19 9l-14.52,63.91A7.38,7.38 0,0 1,165.1 119.28ZM135.38,72.58L120.63,72.58L120.63,60.28a4.92,4.92 0,0 0,-4.92 -4.91h-4.92a4.91,4.91 0,0 0,-4.91 4.91v12.3L91.13,72.58a4.91,4.91 0,0 0,-4.92 4.91v4.92a4.92,4.92 0,0 0,4.92 4.92h14.75L105.88,99.62a4.91,4.91 0,0 0,4.91 4.91h4.92a4.92,4.92 0,0 0,4.92 -4.91L120.63,87.33h14.75a4.92,4.92 0,0 0,4.91 -4.92L140.29,77.49A4.91,4.91 0,0 0,135.38 72.58Z" />
</vector>

Буду признателен за любую помощь в этом вопросе

Ответы [ 6 ]

1 голос
/ 04 марта 2020

Я думаю, вам нужно обновить ваши зависимости

Я получил его на работу при использовании этих зависимостей:

implementation 'androidx.appcompat:appcompat:1.2.0-alpha02'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation "com.google.android.material:material:1.1.0"


<com.google.android.material.floatingactionbutton.FloatingActionButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/drawable_test"
    />

Screen shot

0 голосов
/ 11 марта 2020

Набор

android {
   defaultConfig {
     vectorDrawables.useSupportLibrary = true
    }
 }

в вашем build.gradle

0 голосов
/ 11 марта 2020

Вам просто нужно изменить srcCompat на src, и это решит проблему для вас. Для вашего удобства я прилагаю свой собственный код FAB:

<com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@+id/fab_explore"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="@dimen/dp_16"
        android:src="@drawable/ic_explore_black_24dp"
        app:backgroundTint="@color/accent"
        app:tint="@color/color_white"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintBottom_toBottomOf="parent" />
0 голосов
/ 09 марта 2020

Это сработало для меня, используя следующие зависимости

implementation 'androidx.appcompat:appcompat'
implementation 'com.google.android.material:material:1.1.0'
implementation "androidx.constraintlayout:constraintlayout:2.0.0-beta4"

попробуйте обновить эти зависимости. Мне не нужно было делать какие-либо масштабирования. возможно, также обратитесь к этим и этим вопросам, так как это может быть, что ваш чертеж не центрирован должным образом и не оставляет круг

0 голосов
/ 07 марта 2020

вы можете решить вашу проблему с помощью этой идеи,

<com.google.android.material.floatingactionbutton.FloatingActionButton
    android:id="@+id/fab_new_sale"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="16dp"
    android:layout_marginEnd="16dp"
    android:layout_marginBottom="16dp"
    app:backgroundTint="@color/colorAccent"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    android:src="@drawable/ic_cart_plus"
    android:scaleType="center"/>

здесь вы можете использовать android: sr c вместо приложения: srcCompat

0 голосов
/ 05 марта 2020

Виджет FloatingActionButton обеспечивает полную реализацию компонента кнопки плавающего действия Material Design.

обновление ваших зависимостей

implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'com.google.android.material:material:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'

Использование AppCompat и app: srcCompat - самый надежный метод интеграции векторных рисунков в ваше приложение.

Наконец

 <com.google.android.material.floatingactionbutton.FloatingActionButton
      app:srcCompat="@drawable/your_vector"

Примечание - Пожалуйста, уменьшите ширина, высота значение.

   <vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="20dp"
    android:height="20dp"
    android:viewportWidth="200"
    android:viewportHeight="200">

Android Studio 1.4 представила ограниченную поддержку совместимости векторных рисунков, генерируя файлы PNG во время сборки. Тем не менее, поддержка векторного рисования и анимации векторного рисования. Библиотеки предлагают гибкость и широкую совместимость - это библиотека поддержки, поэтому вы можете использовать ее со всеми версиями платформы Android вплоть до Android 2.1 (уровень API 7+). Чтобы настроить приложение на использование библиотек поддержки векторов, добавьте элемент vectorDrawables в файл build.gradle в модуле приложения.

Используйте следующий фрагмент кода для настройки элемента vectorDrawables:

//For Gradle Plugin 2.0+
 android {
   defaultConfig {
     vectorDrawables.useSupportLibrary = true
    }
 }
...