LiveGrid is really slow on Android.

Hi,

I have a livegrid binded to an interbase database. The database has two tables. They are master-detail tables. each table has about 5-10 fields, (no blob field). The master table has 2 rows and the detail table has 6 rows. When I run the application on android, the change from one row to another row by taping the livegrid is very slow. It took 5-10 seconds to switch rows after I tap. My android device is Samsung tab 4 7inch. I am not sure if there is something I can do to speed it up.

Gene.

Hi, 


Are you able to reproduce the same slowness on Windows? Please note that FireMonkey is generally slower on Android and is very hardware sensitive. How many columns/rows are visible?

Kind Regards, 
Pieter

It is not slow on windows. Mouse reactions are very fast on my windows 7 computer.
I have 5 columns and about 10 rows visible. Also three columns are button cell columns. One button in a cell in those 3 columns.
Since it is a Android app, should I use tableview component instead? If that is the way I have to go, then I have to go through the same learning curve. That is unfortunately!

Especially when using controls such as buttons the grid acts slower on Android. It was the initial flexible design choice in FireMonkey that gives this slow performance. You could try to switch the RenderingMode under Options to the various options and see if that improves the performance also increase the DefaultRowHeight / ColumnWidth so less cells are visible initially.


Kind Regards, 
Pieter

Switching the RendingMode doesn't work! Four options are available, but only two allow me to switch without losing my in-cell buttons. This doesn't work. My Android is a Samsung 7 inch tab 4. It is pretty new and fast. I start to concern about the speed for people that have older tabs/phones.

Hi, I am trying to find out a work-around for this slow livegrid on android. My approach is to use a grid to populate the datatable, then let the user do anything on the grid. When the user is done, then use the data in the grid to update the datatable. It works fine. The grid is not slow. It is really fast.
Now, my question is: is there a way to use binding to have the grid populated, then break/pause the bindings, then let the user does data changes, at the end, reset the bindings and have the changes updated in the datatable. That could make things a lot easier. Thanks!

Hi, 


There is currently no way to post all changed values at once. You would need to keep track of the changed values manually without LiveBindings. The current implementation has the ability to post values for a single record when the AutoPost property is set to apRow.

Kind Regards, 
Pieter

OK. I think I will stick to my original approach of populating grid manually and update my table manually. That ensures the process speed. Thanks!