Filhos inflados de LinearLayout personalizados não são exibidos ao sobrepor

Estou tentando mostrar umMyCustomLinearLayout que se estendeLinearLayout. Estou inflar oMyCustomLinearLayout com oandroid:layout_height="match_parent" atributo. O que eu quero é mostrar umImageView nissoMyCustomLinearLayout. A altura desteImageView deveria estarmatch_parente a largura deve ser igual à altura. Eu estou tentando conseguir isso, substituindo oonMeasure() método. O que acontece é queMyCustomLinearLayout se torna quadrada como deveria, mas oImageView não está aparecendo.

Abaixo do meu código usado.Por favor, note que esta é uma versão extremamente simplificada do meu problema. oImageView será substituído por um componente mais complexo.

public MyCustomLinearLayout(Context context, AttributeSet attrs) {
    super(context, attrs);
    init(context);
}

private void init(Context context) {
    final LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    inflater.inflate(R.layout.view_myimageview, this);

    setBackgroundColor(getResources().getColor(R.color.blue));
}

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    int height = getDefaultSize(getSuggestedMinimumHeight(), heightMeasureSpec);
    setMeasuredDimension(height, height);
}

oview_myimageview.xml Arquivo:

<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android" >

    <ImageView
        android:id="@+id/view_myimageview_imageview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@drawable/ic_launcher" />

</merge>

Então, quando eu substituir oonMeasure() método, oImageView não está mostrando, quando eu não anulo oonMeasure() método, oImageView mostra, mas muito pequeno, porque oMyCustomLinearLayoutA largura é muito pequena.

questionAnswers(1)

yourAnswerToTheQuestion