FloatingActionButton + VectorDrawable在前Lollipop上崩溃

时间:2016-05-16 05:33:41

标签: android android-layout material-design

经过一些研究后,我注意到com.android.support:design:23.3.0的FloatingActionButton在android:src上使用了SVG而崩溃了。 SVG来自Android Studio资产。

它在Android< = 4.4上崩溃了。在5.0上它完美无缺。

SVG:

ic_keyboard_voice_white_24dp

<vector xmlns:android="http://schemas.android.com/apk/res/android"
        android:width="24dp"
        android:height="24dp"
        android:viewportWidth="24.0"
        android:viewportHeight="24.0">
    <path
        android:fillColor="#FFFFFF"
        android:pathData="M12,15c1.66,0 2.99,-1.34 2.99,-3L15,6c0,-1.66 -1.34,-3 -3,-3S9,4.34 9,6v6c0,1.66 1.34,3 3,3zM17.3,12c0,3 -2.54,5.1 -5.3,5.1S6.7,15 6.7,12L5,12c0,3.42 2.72,6.23 6,6.72L11,22h2v-3.28c3.28,-0.48 6,-3.3 6,-6.72h-1.7z"/>
</vector>

XML:

  <android.support.design.widget.FloatingActionButton
      android:id="@+id/fab_button"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_alignParentBottom="true"
      android:layout_marginBottom="20dp"
      android:layout_centerHorizontal="true"
      app:backgroundTint="@color/colorAccentSecondary"
      app:fabSize="normal"
      app:elevation="1dp"
      android:src="@drawable/ic_keyboard_voice_white_24dp"/>

摇篮:

defaultConfig {
  ...
  vectorDrawables.useSupportLibrary = true
}

Stacktrace:https://gist.github.com/ppamorim/420dba3e9dc3022a86a3a1f50400d7d0

这是一个错误吗?我使用ImageView使用AppCompatImageView解决了这个问题。使用FloatingActionButton解决此问题的任何解决方法?

1 个答案:

答案 0 :(得分:6)

如果您想在Lollipop前设备上使用VectorDrawables,您需要至少使用支持库的23.2.0版本,并且需要使用

引用VectorDrawble
app:srcCompat="@drawable/my_vector_drawable"

http://android-developers.blogspot.co.nz/2016/02/android-support-library-232.html