Подтвердить что ты не робот

GetHeight() vs getLayoutParams(). height

В чем разница между getHeight() и getLayoutParams().height от View? У меня есть View (GoogleAdView), и я хочу скрыть его, я установил getLayoutParams().height в ноль, но высота объявления (ad.getHeight()) не равна нулю.

Есть ли способ скрыть View, чтобы он не занимал место в макете?

Я попытался установить его видимость на GONE или установить ad.getLayoutParams().height на ноль, но это не сработает.

4b9b3361

Ответ 1

LayoutParams.height - это высота, которую вы хотите, когда вы планируете видеть, и может быть настроена на определенные константы, такие как WRAP_CONTENT, getHeight() возвращает фактическую высоту (она возвращает 0 до тех пор, пока представление не будет выложено). См. Как Android рисует виды и Вид - размер, отступы и поля.

Как сказал Майкл, вам нужно вызвать requestLayout().

Ответ 2

Правильный способ скрыть представление и игнорировать его в макетах - использовать

setVisibility(View.GONE);

Если это не работает для вас, вам нужно выяснить, почему. Попытка настроить размеры не является хорошим путем.

Если у вас проблемы с макетом, отправьте его здесь.