Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Android Новый топик    Ответить
 глюк в XML после нажатия Effer Constraint  [new]
Сергей Лалов
Member

Откуда: localhost SPB
Сообщений: 1453
Привет! Подскажите пожалуйста, почему после нажатия кнопки infer constraints (кнопка автоматической задачи связей и позиционирования элементов на активити - "волшебная кнопка") стали сбрасываться размерности элементов (длина, либо ширина кнопки к примеру) в нулевое значение. Поставил андроид студио дома, последнюю версию , не могу понять в чем причина глюка. То есть когда я просто создаю контролы/кнопки/чекбоксы и размещаю их вручную на активити (в визуальном редакторе) все нормально. Длина и ширина и прочие атрибуты в норме. А вот как только нажимаю кнопку infer constraints чтобы зафиксировать положение элементов активити , то содержимое длины/ширины контролов внезапно становиться равным нулевому. Подскажие плиз, как с этим бороться? Скрин с наглядным описанием проблемы также приложил:

К сообщению приложен файл. Размер - 128Kb
5 сен 19, 13:35    [21964521]     Ответить | Цитировать Сообщить модератору
 Re: глюк в XML после нажатия Effer Constraint  [new]
chpasha
Member

Откуда:
Сообщений: 8593
Сергей Лалов
почему

потому что как только ты говоришь, что размеры кнопки зависят от окружающих элементов и границ, указание размеров в единицах становится бессмысленным (т.е. либо размер бессмысленен, либо расстояния до окружающих объектов). Например - кнопка 1 - 78dp от нижнего края + под кнопкой 2 на расстоянии 18dp - таким образом, по-скольку положение кнопки 2 так же задано, это сразу однозначно определяет высоту кнопки 1.
Неплохо бы почитать, как работает ConstraintLayout прежде чем в волшебные кнопки тыкать.
5 сен 19, 14:53    [21964626]     Ответить | Цитировать Сообщить модератору
 Re: глюк в XML после нажатия Effer Constraint  [new]
Сергей Лалов
Member

Откуда: localhost SPB
Сообщений: 1453
chpasha
Сергей Лалов
почему

потому что как только ты говоришь, что размеры кнопки зависят от окружающих элементов и границ, указание размеров в единицах становится бессмысленным (т.е. либо размер бесмысленнен, либо расстояния до окружающих объектов). Например - кнопка 1 - 78dp от нижнего края + под кнопкой 2 на расстоянии 18dp - таким образом, по-скольку положение кнопки 2 так же задано, это сразу однозначно определяет высоту кнопки 1.
Неплохо бы почитать, как работает ConstraintLayout прежде чем в волшебные кнопки тыкать.


Я читал, и видел примеры. Наоборот это рекомендуют (кнопку infer constraint), чтобы зафиксировать местоположение на экране элемента или группы элементов . Это различие (обнуление) появилось только с последней версией AS.
Раньше отрабатывало без этих свойств. Что при абсолютном позиционировании элемента, что при относительном , должны сохраняться либо пропорции в процентном соотношении, либо абсолютные значения ширины или длины.

Может в новой сборке какие либо свойства поменяли, но не могу найти пока что, где надо подправить. Вчера скачал только.
5 сен 19, 16:13    [21964741]     Ответить | Цитировать Сообщить модератору
 Re: глюк в XML после нажатия Effer Constraint  [new]
chpasha
Member

Откуда:
Сообщений: 8593
на мой взгляд поведение вполне логично - фиксированный размер и точное положение на форме относительно всех сторон - взаимоисключающие свойства. Это все равно как сказать что окно должно занимать пол-экрана по высоте и одновременно иметь высоту 400 пикселей - одно из двух невозможно, если экран, например, высотой 1000 пикселей. Соотвественно компонент скорее всего игнорирует настройки с меньшим приоритетом, а вот редактор приводит их к фактическому виду, что имхо правильней
5 сен 19, 17:21    [21964817]     Ответить | Цитировать Сообщить модератору
 Re: глюк в XML после нажатия Effer Constraint  [new]
Сергей Лалов
Member

Откуда: localhost SPB
Сообщений: 1453
chpasha
на мой взгляд поведение вполне логично - фиксированный размер и точное положение на форме относительно всех сторон - взаимоисключающие свойства. Это все равно как сказать что окно должно занимать пол-экрана по высоте и одновременно иметь высоту 400 пикселей - одно из двух невозможно, если экран, например, высотой 1000 пикселей. Соотвественно компонент скорее всего игнорирует настройки с меньшим приоритетом, а вот редактор приводит их к фактическому виду, что имхо правильней


Скорее всего да, надо смотреть в условиях constraint layout тщательней.

А так то по сути, смотрите, после нажатия этой кнопки (infer constraint) габаритные характеристики уходят в ноль. (Это в xml файле)
При этом визуально на конструкторе activity у них остается прежняя вполне рабочая и ширина и высота. (То есть визуально габариты остаются прежними.)
Я не думаю что разрабы студио закладывают в данную кнопку (infer constraint) смысл обнуления длины либо ширины контрола на активити.)

Сейчас гляну в настройки обертки wrap /match контент. Может там что то поменялось идеологически.
5 сен 19, 17:54    [21964846]     Ответить | Цитировать Сообщить модератору
Все форумы / Android Ответить