ViewInflate.inflate is VERY SLOW

by Nickname » Thu, 12 Jun 2008 06:06:47 GMT


Sponsored Links
 Hi,

As title, ViewInflate.inflate() takes about 500ms-1sec to inflat an
XML layout file defining a LinearLayout objects containing two
LinearLayout objects each with about 10 Views objects.

With a ListView of 20 entries, each of the same layout, it will take
10-20 seconds to finish layout the entire ListView.

Is there any faster way to achieve it? For example, faster inflate API
or some API to "clone" the first inflated entry to obtain remaining 19
entries?

Thanks for any feedback.

Nick


--~--~---------~--~----~------------~-------~--~----~



ViewInflate.inflate is VERY SLOW

by Mark Murphy » Thu, 12 Jun 2008 06:14:14 GMT


 


When you say 20 entries, do you mean you anticipate 20 lines being 
visible at one time? Or do you mean the list will have 20 total entries, 
of which some subset will be visible at once?

If the latter, you may be able to take advantage of the passed-in View 
convertView parameter to your list adapter's getView() implementation. 
If non-null, this represents a View you already inflated, but whose 
contents need to change to represent the supplied item position. Just 
cast it to the proper View class and update the innards as needed. This 
will cut the inflations down to only as many lines as are visible.

-- 
Mark Murphy (a Commons Guy)
 http://commonsware.com 
Warescription: All titles, revisions, & ebook formats, just $35/year

--~--~---------~--~----~------------~-------~--~----~


Sponsored Links


ViewInflate.inflate is VERY SLOW

by Nickname » Thu, 12 Jun 2008 06:40:57 GMT


 Thanks, Mark.

I do reuse the "convertView parameter" when it is not null.

The parameter is null at the first time when a listview displays, and
it takes long long long time to finish.

Nick.






--~--~---------~--~----~------------~-------~--~----~



ViewInflate.inflate is VERY SLOW

by Romain Guy » Thu, 12 Jun 2008 06:45:02 GMT


 Hi,

XML inflation is slow but on real hardware it is not as slow as you
describe. However, remember you are developing for a cell phone. Even
if inflating your views was fast, having so many views on screen
(you're talking about 20 views per row in a LinearLayout) will impact
layout, drawing, scrolling and memory performance. You should
seriously consider simplifying this XML file and limit the number of
views you need on screen.









-- 
Romain Guy
www.curious-creature.org

--~--~---------~--~----~------------~-------~--~----~



ViewInflate.inflate is VERY SLOW

by Nickname » Thu, 12 Jun 2008 22:43:15 GMT


 Thanks, Romain.

Your suggestion is valid, because only 5 or so of the 20 views will be
on the row at a time and the others will be hidden.

Maybe I should not use ViewInflate.inflate() at all but add those view
that need to be on the row programmatically.

Nick.








--~--~---------~--~----~------------~-------~--~----~



ViewInflate.inflate is VERY SLOW

by Romain Guy » Thu, 12 Jun 2008 23:10:23 GMT


 ou can (and should) use ViewInflate but you could separate your XML
into several pieces. Another solution that I've used successfully for
the Home screen is to write your own layout so as to reduce the number
of Views.

Note that the next SDK will provide several new XML tags to help
reduce the number of views in a layout.

On Wed, Jun 11, 2008 at 4:50 PM, Nickname <[EMAIL PROTECTED]> wrote:



--
Romain Guy
www.curious-creature.org

--~--~---------~--~----~------------~-------~--~----~



ViewInflate.inflate is VERY SLOW

by Nickname » Fri, 13 Jun 2008 23:25:04 GMT


 hanks again, Romain.

It is gear to separate one layout into pieces!

Why didn't I think of it?!!

Nick

On Jun 12, 7:10 am, "Romain Guy" <[EMAIL PROTECTED]> wrote:

--~--~---------~--~----~------------~-------~--~----~



Other Threads

1. Sharedpreference info get overwritten each time I did a version update?



Can't confirm, our apps' prefs remains unchanged on updates, however
I got a feeling I spotted (once or two times) that some values
were gone after the update. I did not investigate further though

-- 

2. Notification question

I want to add views to the places above the Notification area when
touch Notification ,but I cant't find the APIs to do this,how can I do?
Is it available? Thank u

-- 

3. Mirdak Yogya @ Starbuck

4. Problems using AlertDialog in a onReceive() method

5. Latest froyo for Galaxy S, I9000XXJP2

6. Menu text not showing in emulator

7. card game samples or pointers