Надутые дочерние элементы пользовательского 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
показывает, но слишком мал, потому чтоMyCustomLinearLayout
s ширина слишком мала.