Перейти к содержанию
Fire Monkey от А до Я
  • 0

Съезжают размеры и положение контролов в Андроиде, в винде всё нормально.


didgik

Вопрос

Рекомендуемые сообщения

  • 0
Опубликовано

Нашел в чем дело.
В дизайнере формы есть переключалка стилей windows/android
И если рисовать в режиме андроида, то все хорошо и переключится на виндоус, то стиль немного меняется, но ничего не съезжает, а если наоборот, с винды на андроид, то съезжает.
Но тут возник другой вопрос. Для формы переключалка есть, а для фрейма нет. И фрейм рисуется в стиле винды.
Можно ли включить стиль фрейма для андроида, это вопрос.

  • 0
Опубликовано (изменено)

фрейм подхватывает стили формы. в design-time это не удастся увидеть, но в Run-time должно быть как надо

чтобы ничего не съезжало и "немного не менялось", нужно в книге стилей удалить отдельные стили для разных ОС и оставить один - default

тогда программа будет выглядеть одинаково

Изменено пользователем krapotkin
  • 0
Опубликовано
58 минут назад, krapotkin сказал:

чтобы ничего не съезжало и "немного не менялось", нужно в книге стилей удалить отдельные стили для разных ОС и оставить один - default

Там и был один стиль default. Точнее Стилбук изначально не было в проге. Но если его туда поставить и оставить стиль default, то все равно есть два разных default для винды и для андроида. Как убрать стиль в принципе или сделать одинаковым для обеих платформ я не нашел.

  • 0
Опубликовано (изменено)

это вообще другая опера. Причем StyleBook здесь используется неявно

положите StyleBook явно и используйте Style Designer

ну и ОБЯЗАТЕЛЬНО используйте адаптивную верстку - layout'ы разных типов, свойства Align, Padding, Margins

Изменено пользователем krapotkin
  • 0
Опубликовано

Это не другая опера, это то, что мне надо. Чтобы прога в Виндоус и Андроид выглядела одинаково. И StyleBook мне никак не помогает. Ну т.е. я могу вручную копипастом заменить одни стили на другие, но это попахивает мазохизмом.

  • 0
Опубликовано (изменено)
9 минут назад, krapotkin сказал:

я попросил вас положить на форму StyleBook и оставить там один стиль

вы это сделали?

Естественно!

 

3718.jpg

9.png

Изменено пользователем didgik
  • 0
Опубликовано

По большому счету из критичного только то, что по умолчанию в Андроид крупный шрифт и если размеры контролов рисовать с учетом этого то косяков будет намного меньше, но всё равно не удобно. Почему то нет Frame под андроид и из за этого у меня проблемы.

  • 1
Опубликовано

вот теперь, если в книгу загрузить любой стиль

например отсюда

C:\Users\Public\Documents\Embarcadero\Studio\<version>\Styles 

(и не дать ей создать отдельные стили для каждой ОС),

то выглядеть все будет одинаково

конечно, надо иметь в виду, что шрифт из стиля должен иметься везде, иначе ОС подставит что-нибудь

 

  • 0
Опубликовано

Приблизительно справился. Добавил стиль на андроид сделанный из Windows Style. Почти похоже. Пока единственный касяк, что у винды TEdit 22 высотой, а у Андроида 32. Придется у каждого едита дергать высоту. А про фреймы не понял. Они же специально нужны чтоб в Design-time их мышкой рисовать.

  • 0
Опубликовано

Если не делать controlstyle=native то высота едита задаётся стилем, не системой

Фреймы вы явно что-то не то подразумеваете. А что - я не понимаю.

File - new - other - fmx frame

  • 0
Опубликовано
27 минут назад, krapotkin сказал:

Если не делать controlstyle=native то высота едита задаётся стилем, не системой

Такого не нашел, зато есть ControlType = Styled/Platform. Как в стиле прописать высоту кнопки или едита я не нашел. А по умолчанию в форме высота не сохраняется.

33 минуты назад, krapotkin сказал:

Фреймы вы явно что-то не то подразумеваете. А что - я не понимаю.

File - new - other - fmx frame

И я про это. Почему то значка поддержки Андроида при создании нет, хоть и работает правда без стилей в Design-time.

  • 0
Опубликовано
1 час назад, krapotkin сказал:

вот. отлично видно, что размер едита не стандартный

я об этом и говорю. и стилем не правится.

  • 0
Опубликовано

я теряю нить. надо одинаково или НЕ одинаковл?

я на скрине показал, что размер я задал какой мне нужен. и он что на Win64 что на A64 - одинаков
если не трогать, он одинаковый на всех платформах
если нужно НЕ одинаковый, тут никто же за вас не решит - какой где - поэтому в OnCreate задать одной строкой программно, да и все

 

  • 0
Опубликовано

Попытаюсь объяснить подробнее.

При включенном стиле видос размещаем едит, по умолчанию он высотой 22, при переключении в стиль андроид, высота едита увеличивается до 32. Если изменить высоту едита вручную, то она фиксируется. С кнопкой такая же фигня. Как задать изначальную высоту едита или кнопки в стилях я не нашел.

GIF 13.07.2023 14-54-55.gif

  • 0
Опубликовано

размер самого контрола не задается в стиле

он задается обычно в конструкторе и потом считывается из ресурса DFM/FMX

если найдено свойство, то оно перекрывает изначальное

поэтому да, нужно изначально в инспекторе поставить хоть какой-то размер, чтобы он прописался в форму и после этого он будет таким всегда

  • 0
Опубликовано
type  
TEdit = class(FMX.Edit.TEdit)
  protected
    procedure AdjustFixedSize(const Ref: TControl); override;
  end;



implementation


{$R *.fmx}

procedure TEdit.AdjustFixedSize(const Ref: TControl);
begin
  SetAdjustType(TAdjustType.None);
end;

Исправление

 

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...