自定义DialogPreference未正确显示ImageView

时间:2018-06-08 11:22:32

标签: android dialog-preference

我有一个自定义DialogPreference:

    <com.myapp.MyPreferenceDialog
        android:key="dialog_key"
        android:title="Test MyDialogPreference"
        android:positiveButtonText="ok"
        android:negativeButtonText="cancel"
        />

对话框代码如下:

class MyDialogPreference extends DialogPreference
{

    public MyDialogPreference( Context context, AttributeSet attrs )
    {
        super(context, attrs);
        setDialogLayoutResource( R.layout.test );
    }
}

布局xml代码如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:srcCompat="@drawable/image" />
</LinearLayout>

当我启动应用程序设置并触摸“Test MyDialogPreference”时,会显示一个对话框,但imageview不会显示任何图像。我知道如何以编程方式修复此问题(只需覆盖onBindDialogView()并将ImageView图像资源设置为其drawable),但我想了解为什么必须以编程方式执行此操作。

1 个答案:

答案 0 :(得分:0)

将以下内容添加到build.gradle文件

defaultConfig {  
 vectorDrawables.useSupportLibrary = true  
}