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

TVertScrollBox+Android+Delphi_XE10


FeLDMARShaL

Вопрос

Пытаемся пробовать переходить с XE8.1 на XE10. (под iOS багов пока не замечено, уже залили приложение в AppStore). А вот с Андройдом не так все хорошо.

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

Точного кол-ва контролов для наблюдения бага не помню, но примерно это число около 40. (т.е. не так уж и много). Причем при 39 контролах все идеально, а после добавления 40 контрола начинается ахтунг.

На XE8.1 такого не наблюдается, поэтому для компилации под iOS используем 10, а для Android 8.1. Хотелось бы уже полностью перейти на 10. Есть идеи из за чего такое может происходить?

Пробовал VertScrollBox поменять на обычные ScrollBox результат такой же. П.С. использу стили, может такое поведения быть вызвано плохим переходом от одного стиля к другому?

Ссылка на комментарий

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

  • 0

Ради эксперимента пробовал на ScrollBox кидать (runtime) достаточное кол-во объектов (TRectangle) - более 100. Правда стили не использовал. На 4 аппратах (2013, 2014, 2010 годов), т.е. с разными процессорами  и ОЧЕНЬ разной производительностью проблем с вылетом или тормозами не заметил. Так - что: 

1) Какие контролы кидаете?  это вычеркнул, не внимательно прочел в Вашем посте...

2) Попробуйте отключить стили

3) Если контролы "кидаете" в рантайм - проверьтесь на освобождение ресурсов, выход за рэйндж и пр.

Изменено пользователем Andy
Ссылка на комментарий
  • 0
  • Модераторы

проблема со стилями, нельзя использовать стили от xe8 в проекте seattle, попробуйте заменить похожим из 10-ки

Ссылка на комментарий
  • 0
  • Администраторы

Попробуйте еще использовать новый скролл бокс TPresentedScrollBox. Он лучше настраивается и у него есть новый режим без вычисления размера контента автоматически. Это позволяет немного ускорить его работу в случае, когда вы добавляете или двигаете контролы внутри.

Ссылка на комментарий
  • 0

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

unit Unit1;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Controls.Presentation,
  FMX.StdCtrls, FMX.Layouts;

type
  TForm1 = class(TForm)
    VertScrollBox1: TVertScrollBox;
    bOrderExample: TButton;
    procedure FormCreate(Sender: TObject);
  private
    procedure CreateButton();
  public
  end;

var
  Form1: TForm1;

implementation

{$R *.fmx}

procedure TForm1.CreateButton;
var
  newButton: TButton;
begin
  newButton := TButton.Create(bOrderExample);
  newButton.BeginUpdate;
  newButton.Align := bOrderExample.Align;
  newButton.Size := bOrderExample.Size;
  newButton.EndUpdate;
  newButton.Parent := VertScrollBox1;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  i: Integer;
begin
  for i := 1 to 50 do
    CreateButton;
end;

end.

VertScrollBox1 имеет позиционирование по всей форме, в нем находится кнопка bOrderExample, она имеет позиционирование по верху.

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

Ссылка на комментарий
  • 0

Никаких манипуляций со свойством проекта не делалось, все из коробки, сторонних компонентов нету. С манифестом также не баловался. У меня под рукой не оказалось ни одного устройства на котором полученное приложение работало бы, но знаю иногда есть устройства на которых оно работает правильно.

Ссылка на комментарий
  • 0

Если Вас не затруднит, установите пожалуйста мой апк на Ваш телефон и сообшите результат (поскроллируйте панель, попереворачивайте экран)

https://drive.google.com/file/d/0Bwau2DWuKoCJWDBnU1plYXF2M2s/view?usp=sharing

 

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

 

p.s. напомню, что проект компилится в Delphi 10 Seattle.

Ссылка на комментарий
  • 0

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

unit Unit1;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Controls.Presentation,
  FMX.StdCtrls, FMX.Layouts;

type
  TForm1 = class(TForm)
    VertScrollBox1: TVertScrollBox;
    bOrderExample: TButton;
    procedure FormCreate(Sender: TObject);
  private
    procedure CreateButton();
  public
  end;

var
  Form1: TForm1;

implementation

{$R *.fmx}

procedure TForm1.CreateButton;
var
  newButton: TButton;
begin
  newButton := TButton.Create(bOrderExample);
  newButton.BeginUpdate;
  newButton.Align := bOrderExample.Align;
  newButton.Size := bOrderExample.Size;
  newButton.EndUpdate;
  newButton.Parent := VertScrollBox1;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  i: Integer;
begin
  for i := 1 to 50 do
    CreateButton;
end;

end.

VertScrollBox1 имеет позиционирование по всей форме, в нем находится кнопка bOrderExample, она имеет позиционирование по верху.

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

"при попытке повернуть экран" У меня такая проблема возникла при установки стиля через стайлбук

Ссылка на комментарий
  • 0

Ребят помогите , немного не по теме но все же не нашел в гугле ответ.

У меня на VertScrollBox несколько layout лежит и на них применен ShadowEffect как сделать что бы эффект при скроле тоже двигался а не стоял на месте?

Ссылка на комментарий
  • 0
В 15.02.2016 в 17:01, AlexRusSoft сказал:

"при попытке повернуть экран" У меня такая проблема возникла при установки стиля через стайлбук

В манифесте проверь, чтобы было |screenSize

Сам столкнулся при переходе в seattle.

android:configChanges="orientation|keyboard|keyboardHidden|screenSize

Ссылка на комментарий

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

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

Гость
Ответить на вопрос...

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

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

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

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

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

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

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