Why don't you just use a LayoutAnimation? That's what it's for. 2009/4/30 Illidane <[email protected]>: > > I did that ( write somewhere in getView ) : > if(position == mGameModel.getCount() - 1) > (new Timer(false)).schedule(new AnimationTimer(), 10); > > AnimationTimer() just run my animation. Without this timer when I was > trying to write if(position == mGameModel.getCount() - 1) my animation > was running without last cell. It's because of position. When it's 99, > GridView just haven't time to set last cell ( under 99-position > number). Timer in 10 ms helps it. > > To Siva Rajaraman: > You must use position value ( even if it works not correctly :) ). > Than do as I wrote upper. > > > On 29 апр, 18:27, Streets Of Boston <[email protected]> wrote: >> Good to hear! >> >> I'm curious: what did you do to get around this problem? >> (yarik may want to know as well :-)) >> >> On Apr 29, 11:13 am, Illidane <[email protected]> wrote: >> >> >> >> > No matter.. it's all working now with the GridView, I have fixed that >> > bug by the hand. >> > Thank you for your help) >> >> > On 29 апр, 17:07, Streets Of Boston <[email protected]> wrote: >> >> > > If you have all 100 cells visible at once at all time, the GridView >> > > does not add much functionality (no scrolling necessary), except for >> > > selecting cells. >> >> > > I'm not familiar with your app, but i think it would be 'easier' than >> > > wrestling with GridView to subclass 'View' (or 'ViewGroup' if you need >> > > additional child-views) and have this sub-class handle the 100 cells >> > > (implement onDraw, dispatchDraw) and draw your cells using Drawables. >> > > This also removes the need of having 100 child-views (1 for each >> > > cells), which could become more problematic for the Cupcake release >> > > (see its note about how it is more finnicky about the depth and width >> > > of view-hierarchies). Instead, you have just one view with 100 small >> > > bitmaps/drawables. >> >> > > On Apr 29, 3:03 am, Illidane <[email protected]> wrote: >> >> > > > Extend the GridView or write my own class which will manipulating 100 >> > > > cells as drawables? >> >> > > > On 29 апр, 00:27, Streets Of Boston <[email protected]> wrote: >> >> > > > > I have to defend Romain here. >> > > > > The gridview and/or listview is just not designed to do this. You're >> > > > > trying to put a round peg in a square hole. >> >> > > > > Maybe the decision to use a GridView for your purposes is not a good >> > > > > idea, because of its design that does not fit what you need. >> >> > > > > If all 100 cells are visible at the same time (then there's no >> > > > > scrolling needed), why do you need a gridview? Maybe you should >> > > > > subclass your own view and draw the 100 cells as 100 drawables (which >> > > > > you can animate) yourself in its onDraw or dispatchDraw method. >> >> > > > > On Apr 28, 2:53 pm, Illidane <[email protected]> wrote: >> >> > > > > > Ok-ok, I gotcha what you mean. >> > > > > > But with such position to developers you will never make android >> > > > > > lead >> > > > > > platform. >> > > > > > Sory, if I speak the truth boldly. >> >> > > > > > On 28 апр, 19:44, Romain Guy <[email protected]> wrote: >> >> > > > > > > No, you are just making assumptions about how it should work. >> > > > > > > Nowhere >> > > > > > > does it say that it should work the way you want it to work, >> > > > > > > that's >> > > > > > > not how it works and that's not how it will work. >> >> > > > > > > 2009/4/28 Illidane <[email protected]>: >> >> > > > > > > > To Romain Guy: >> > > > > > > > Ok, I understood that you think that it's NOT a bug and that >> > > > > > > > you >> > > > > > > > implement it how you want it be. >> > > > > > > > But I need to say you, that in such situation is very hard, or >> > > > > > > > sometimes is impossible to write good, stable, beauty, useful >> > > > > > > > and >> > > > > > > > competitive apps for Android, not only for me, but for all >> > > > > > > > Android >> > > > > > > > programmers. >> > > > > > > > And I think you know that. >> >> > > > > > > > On 28 апр, 18:53, Romain Guy <[email protected]> wrote: >> > > > > > > >> I am from the Google team (and I did implement a lot of >> > > > > > > >> GridView and >> > > > > > > >> ListView) and it is NOT a bug. GridView and ListView can call >> > > > > > > >> getView() out of order and more times than the number of >> > > > > > > >> views that >> > > > > > > >> will fit on screen, depending how the Grid/ListView is >> > > > > > > >> measured/laid >> > > > > > > >> out. >> >> > > > > > > >> 2009/4/28 [email protected] <[email protected]>: >> >> > > > > > > >> > I have exactly same problem. Why do we have 102 values of >> > > > > > > >> > position >> > > > > > > >> > when there is only 100 cells displayed on screen? >> > > > > > > >> > "position is changed like: 0, 0, 1, 2, 3... 99, 0" - what >> > > > > > > >> > is the cause >> > > > > > > >> > of that? Can someone from google team answer? >> > > > > > > >> > That seems to be a bug, very annoying bug. Answer "It's not >> > > > > > > >> > a bug" is >> > > > > > > >> > not answer! How do you generate position? >> >> > > > > > > >> > On Apr 27, 9:40 pm, Illidane <[email protected]> wrote: >> > > > > > > >> >> There is a way to make GridView without Adapter ( e.g. >> > > > > > > >> >> something >> > > > > > > >> >> like .addView() method ) ? >> >> > > > > > > >> >> On 27 апр, 21:38, Illidane <[email protected]> wrote: >> >> > > > > > > >> >> > My GridView shows all 100 cells on the screen ( all >> > > > > > > >> >> > visible at one >> > > > > > > >> >> > moment ) >> > > > > > > >> >> > and all the animation works fine, and pretty fast ( on >> > > > > > > >> >> > all 100 >> > > > > > > >> >> > elements ), >> > > > > > > >> >> > but than begin problems with last cell. >> > > > > > > >> >> > Animation not child-view's. Each cell is a imageView >> > > > > > > >> >> > with animation on >> > > > > > > >> >> > it. >> >> > > > > > > >> >> > On 27 апр, 20:43, Streets Of Boston >> > > > > > > >> >> > <[email protected]> wrote: >> >> > > > > > > >> >> > > It's not buggy. I use the adapters and grid/list-views >> > > > > > > >> >> > > in my apps and >> > > > > > > >> >> > > they work fine. I think they are not designed for your >> > > > > > > >> >> > > purpose. >> >> > > > > > > >> >> > > e.g. If your adapter has 100 elements and the >> > > > > > > >> >> > > grid/list-view only >> > > > > > > >> >> > > shows about 15 at a time on the screen, the getView is >> > > > > > > >> >> > > called about 15 >> > > > > > > >> >> > > times. Sometimes more times, depending whether a >> > > > > > > >> >> > > little bit (a few >> > > > > > > >> >> > > pixels) of the top or bottom child-view become visible >> > > > > > > >> >> > > or not. Then, >> > > > > > > >> >> > > when you start scrolling, getView gets called again >> > > > > > > >> >> > > and again when >> > > > > > > >> >> > > child-views become visible and others become invisible. >> >> > > > > > > >> >> > > Also, seriously consider re-using the convertView for >> > > > > > > >> >> > > your grid- or >> > > > > > > >> >> > > list-view. My experience is that it can really slow >> > > > > > > >> >> > > down your app if >> > > > > > > >> >> > > you just return new View instances for each >> > > > > > > >> >> > > child-view/cell: >> > > > > > > >> >> > > public ... getView(....) { >> > > > > > > >> >> > > View view = convertView != null ? convertView : >> > > > > > > >> >> > > createNewView(...); >> > > > > > > >> >> > > ... >> > > > > > > >> >> > > ... >> > > > > > > >> >> > > return view; >> >> > > > > > > >> >> > > } >> >> > > > > > > >> >> > > The implementation of the adapter+listviews does not >> > > > > > > >> >> > > need to rely on >> > > > > > > >> >> > > the order in which the getView is called. As long as >> > > > > > > >> >> > > it is called for >> > > > > > > >> >> > > every child-view that becomes visible. >> >> > > > > > > >> >> > > Isn't is possible to start a child-view's (cell's) >> > > > > > > >> >> > > animation when you >> > > > > > > >> >> > > handle it the getView(...) method? >> >> > > > > > > >> >> > > If you really want at least 100 child-views/cells to >> > > > > > > >> >> > > be created (i >> > > > > > > >> >> > > won't recommend it... it's a LOT), you can override >> > > > > > > >> >> > > the Adapter's >> > > > > > > >> >> > > getViewTypeCount() and getItemViewType(int pos). Even >> > > > > > > >> >> > > with this, I'm >> > > > > > > >> >> > > still not sure if getView would get called in the >> > > > > > > >> >> > > order you want. >> >> > > > > > > >> >> > > ... >> > > > > > > >> >> > > private static int EXPECTED_CELL_COUNT = 100; >> >> > > > > > > >> >> > > public int getViewTypeCount() { return >> > > > > > > >> >> > > EXPECTED_CELL_COUNT; } >> > > > > > > >> >> > > public int getItemViewType(int pos) { return pos % >> > > > > > > >> >> > > EXPECTED_CELL_COUNT; } >> >> > > > > > > >> >> > > On Apr 27, 1:07 pm, Illidane <[email protected]> >> > > > > > > >> >> > > wrote: >> >> > > > > > > >> >> > > > And you think it's not a bug? where is guarantee >> > > > > > > >> >> > > > that it will work in >> > > > > > > >> >> > > > general? >> > > > > > > >> >> > > > Where adapter takes it's magic number N? >> >> > > > > > > >> >> > > > On 27 апр, 19:56, Romain Guy <[email protected]> >> > > > > > > >> >> > > > wrote: >> >> > > > > > > >> >> > > > > There is no guarantee it's going to be called N >> > > > > > > >> >> > > > > times either. >> >> > > > > > > >> >> > > > > 2009/4/27 Illidane <[email protected]>: >> >> > > > > > > >> >> > > > > > Even with convertView problem is still same - >> > > > > > > >> >> > > > > > last cell is not >> > > > > > > >> >> > > > > > animating. >> > > > > > > >> >> > > > > > And... you said WHEN getView()... I think it's >> > > > > > > >> >> > > > > > no matter, matter HOW >> > > > > > > >> >> > > > > > MANY times getView() called. >> > > > > > > >> >> > > > > > It calls more than 100 times, whats very strange. >> > > > > > > >> >> > > > > > For the first time it's called 102 times and all >> > > > > > > >> >> > > > > > animations was >> > > > > > > >> >> > > > > > working. For the second and next times it was >> > > > > > > >> >> > > > > > 101, and last animation >> > > > > > > >> >> > > > > > was static. >> > > > > > > >> >> > > > > > I think where is some bug regularity... >> >> > > > > > > >> >> > > > > > On 27 апр, 19:31, Romain Guy >> > > > > > > >> >> > > > > > <[email protected]> wrote: >> > > > > > > >> >> > > > > >> You should ALWAYS reuse the convertView, >> > > > > > > >> >> > > > > >> oherwise you're gonna eat up >> > > > > > > >> >> > > > > >> memory and just slow down your app. And like I >> > > > > > > >> >> > > > > >> said, there is no >> > > > > > > >> >> > > > > >> guarantee on how and when getView() is called >> > > > > > > >> >> > > > > >> so you cannot rely on it >> > > > > > > >> >> > > > > >> with your anim counter. >> >> > > > > > > >> >> > > > > >> 2009/4/27 Illidane <[email protected]>: >> >> > > > > > > >> >> > > > > >> > I dont use convertView parametr and return >> > > > > > > >> >> > > > > >> > new child-view. >> >> > > > > > > >> >> > > > > >> > Each cell has an animation. In the getView I >> > > > > > > >> >> > > > > >> > generate an array of >> > > > > > > >> >> > > > > >> > animations, wich I start when the adapter >> > > > > > > >> >> > > > > >> > stops his work ( e.g. when >> > > > > > > >> >> > > > > >> > my mAnimCounter == 102 ( but need be max 100, >> > > > > > > >> >> > > > > >> > lol ) When I run app, >> > > > > > > >> >> > > > > >> > all 100 cells are animated. But when I >> > > > > > > >> >> > > > > >> > re-check the field as I need >> > > > > > > >> >> > > > > >> > and call mGameGrid.setAdapter(mAdapter), new >> > > > > > > >> >> > > > > >> > animations working, but >> > > > > > > >> >> > > > > >> > last. Last cell are NOT animated. Problem can >> > > > > > > >> >> > > > > >> > be only in getView and >> > > > > > > >> >> > > > > >> > method how it works. I very doubt that it's >> > > > > > > >> >> > > > > >> > not a bug of GridView or >> > > > > > > >> >> > > > > >> > Adapter. >> >> > > > > > > >> >> > > > > >> > On 27 апр, 18:59, Streets Of Boston >> > > > > > > >> >> > > > > >> > <[email protected]> wrote: >> > > > > > > >> >> > > > > >> >> The child/item-views in list-views and >> > > > > > > >> >> > > > > >> >> grid-views are >> >> ... >> >> продолжение >> > > >
-- Romain Guy Android framework engineer [email protected] Note: please don't send private questions to me, as I don't have time to provide private support. All such questions should be posted on public forums, where I and others can see and answer them --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~----------~----~----~----~------~----~------~--~---

