Мне нужно программно установить высоту изображения как matchparent. Если это фиксированная высота, я знаю, как установить.
но как я могу установить его как родителя?
РЕДАКТИРОВАТЬ:
на самом деле высота родительского макета является динамической. поэтому мне нужно сделать высоту изображения как высоту родительского.
Ответы:
инициировать LayoutParams.
назначьте родительскую ширину и высоту и передайте их методу setLayoutParams изображения
источник
imageView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
источник
источник
imageView.setLayoutParams (new ViewGroup.MarginLayoutParams (width, ViewGroup.LayoutParams.MATCH_PARENT));
Параметры типа макета зависят от родительской группы представлений. Если вы установите неправильный, это вызовет исключение.
источник
Для пользователей Kotlin
val params = mImageView?.layoutParams as FrameLayout.LayoutParams params.width = FrameLayout.LayoutParams.MATCH_PARENT params.height = FrameLayout.LayoutParams.MATCH_PARENT mImageView?.layoutParams = params
Здесь я использовал,
FrameLayout.LayoutParams
так как мойImageView
родительский элемент views ( )FrameLayout
источник
У меня была такая же проблема. Решено сначала установкой:
imageView.setMinHeight(0); imageView.setMinimumHeight(0);
А потом :
setMinHeight определяется ImageView, а setMinimumHeight определяется View. Согласно документации, используется большее из двух значений, поэтому должны быть установлены оба.
источник
Вы можете попробовать это, если хотите сопоставить родителя. Расположение размеров - ширина и высота в порядке.
web = new WebView(this); web.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
источник
Вы можете использовать константу MATCH_PARENT или ее числовое значение -1.
источник