Надутые дочерние элементы пользовательского LinearLayout не отображаются при переопределении onMeasure

я пытаюсь показатьMyCustomLinearLayout который расширяетсяLinearLayout, Я'м раздуваяMyCustomLinearLayout сandroid:layout_height="match_parent" приписывать. Я хочу показатьImageView в этомMyCustomLinearLayout, Высота этогоImageView должно бытьmatch_parentи ширина должна быть равна высоте. Я'Я пытаюсь достичь этого путем переопределенияonMeasure() метод. Что происходит?MyCustomLinearLayout становится квадратным, как и должно быть, ноImageView не показывает

Ниже мой используемый код.Обратите внимание, что это чрезвычайно упрощенная версия моей проблемы.ImageView будет заменен более сложным компонентом.

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);
}

view_myimageview.xml файл:




    


Поэтому, когда я отменяюonMeasure() метод,ImageView не показывает, когда я непереопределитьonMeasure() метод,ImageView показывает, но слишком мал, потому чтоMyCustomLinearLayouts ширина слишком мала.

Ответы на вопрос(1)

Ваш ответ на вопрос