代码之家  ›  专栏  ›  技术社区  ›  Mahdi

在ImageView中设置Vector Drawable会导致旧SDK中的应用程序崩溃

  •  3
  • Mahdi  · 技术社区  · 8 年前

    我在image src中使用了Vector Drawable,如下所示:

     <ImageView
                    android:id="@+id/isSold"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_gravity="center_vertical"
                    android:visibility="gone"
                    app:srcCompat="@drawable/ic_soldout_24px"
                    tools:ignore="MissingPrefix"/>
    

    我还将这些添加到清单中:

    defaultConfig {
            vectorDrawables.useSupportLibrary=true
        }
    

    我用了 compile 'com.android.support:appcompat-v7:23.2.1'

    但我的应用程序在旧的sdk中崩溃,并显示以下消息 Error inflating class ImageView

    2 回复  |  直到 8 年前
        1
  •  13
  •   Er.Rohit Sharma    8 年前

    使用 android.support.v7.widget.AppCompatImageView 而不是ImageView:

     <android.support.v7.widget.AppCompatImageView
        android:id="@+id/isSold"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center_vertical"
        android:visibility="gone"
        app:srcCompat="@drawable/ic_soldout_24px"
        tools:ignore="MissingPrefix"/>
    
        2
  •  1
  •   Sevastyan Savanyuk    7 年前

    使用普通 <ImageView> , 如果 顶级活动/对话框由提供 android.support.v7.app.AppCompatActivity .

    您只需要手动使用 AppCompatImageView 编写自定义视图时。

    这是来自文档。