动态添加到 LinearLayout 时不显示 ImageView

ImageView isn't shown when added to LinearLayout dynamically

我正在使用支持库 compile 'com.android.support:support-v4:25.1.1' 当我尝试将视图动态添加到其他布局时,图像丢失了。

app:srcCompat="@drawable/ic_remove_task" 当我在图像视图中使用它时图像没有显示。

当我这样写的时候工作 android:src="@drawable/ic_remove_task"

有什么问题吗?

这是 ImageView

<ImageView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        app:srcCompat="@drawable/ic_remove_task"
        android:id="@+id/remove_sub_task_icon" />

代码在这里,来自上一个问题:

从 Android 支持库 23.3.0 开始,支持矢量绘图 只能通过 app:srcCompat

加载

您需要将 vectorDrawables.useSupportLibrary = true 添加到您的 build.gradle 文件

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

并确保应用使用正确的命名空间,如下所示:

xmlns:app="http://schemas.android.com/apk/res-auto"

我已经自己解决了。问题在于膨胀视图。 您必须像这样初始化充气机:

LayoutInflater layoutInflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

而不是这个:

 LayoutInflater layoutInflater = (LayoutInflater) activity.getBaseContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);