GetHeight() vs getLayoutParams(). height
В чем разница между getHeight()
и getLayoutParams().height
от View
? У меня есть View
(GoogleAdView), и я хочу скрыть его, я установил getLayoutParams().height
в ноль, но высота объявления (ad.getHeight()
) не равна нулю.
Есть ли способ скрыть View
, чтобы он не занимал место в макете?
Я попытался установить его видимость на GONE
или установить ad.getLayoutParams().height
на ноль, но это не сработает.
Ответы
Ответ 1
LayoutParams.height
- это высота, которую вы хотите, когда вы планируете видеть, и может быть настроена на определенные константы, такие как WRAP_CONTENT, getHeight()
возвращает фактическую высоту (она возвращает 0 до тех пор, пока представление не будет выложено). См. Как Android рисует виды и Вид - размер, отступы и поля.
Как сказал Майкл, вам нужно вызвать requestLayout().
Ответ 2
Правильный способ скрыть представление и игнорировать его в макетах - использовать
setVisibility(View.GONE);
Если это не работает для вас, вам нужно выяснить, почему. Попытка настроить размеры не является хорошим путем.
Если у вас проблемы с макетом, отправьте его здесь.