Страницы

Поиск по вопросам

вторник, 13 ноября 2018 г.

Для чего использовать layout_height=“0px” вместо “warp_content”?

Не раз видел в примерах при указании высоты View элемента, то что указывают высоту равной 0px. Вот живой пример, для ViewPager указана высота в 0px




Объясните пожалуйста, что это значит. Получается ViewPager отображен в макете как горизонтальная невидимая полосочка. Разве просто обернуть по содержимому не подойдет (wrap_content)? С какой целью применяют этот способ?


Ответ

layout_height (layout_width) равный 0px указывается, насколько я могу припомнить, только в одном случае - когда ширина (высота) расcчитывается с помощью "весов" - атрибута android:layout_weight
Делается это для того, чтобы:
Во первых - не тратилось время на бесполезное вычисление заданной в параметре высоты (а wrap_content и match_parent довольно ресурсоемкие атрибуты), так как оно потом все равно будет изменено на рассчитанное по весу.
Во вторых - при расчете, значение текущего размера виджета, отличное от нуля, будет влиять на результат расчета "веса" и вы получите не совсем то, что ожидаете.

Комментариев нет:

Отправить комментарий