android - ExpandableList getChildView running twice per child -
i've got , expandablelist
assign extended baseexpandablelistadapter
. in here, implement getchildview
method setup , return view each child:
public view getchildview(int groupindex, int childindex, boolean islastchild, view convertview, viewgroup parent) { linearlayout layout; if (convertview == null) { layout = (linearlayout) layoutinflater.from(myapp.getcontext()).inflate(r.layout.rooms_room_list_row, parent, false); } else { layout = (linearlayout) convertview; } // custom stuff views on layout ... return layout; }
while debugging, i've noticed getchildview
executed twice per child. values passed in (i.e, groupindex, childindex, islastchild) same... in group 3, if i've got 2 children, i'll see:
groupindex = 3
, childindex = 0
then
groupindex = 3
, childindex = 1
then repeats:
groupindex = 3
, childindex = 0
and finally:
groupindex = 3
, childindex = 1
my view appears fine, i.e, there 2 children listed group, why doing work?
update & answer
it seems if the listview set height of wrap_content
getchildview
called twice per child. changing height fill_parent
seems fix behavior.
as mentioned in other question, listview
calls getview()
dimensions (width , height) of some items first, then calls getview()
again render items. check this video out, it's "required reading" android. bit deals question @ minute 41:30.
Comments
Post a Comment