android - Gallery of Fragments -


i'm trying implement gallery every cell fragment.

gallery_item.xml:

<?xml version="1.0" encoding="utf-8"?> <framelayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/cardcontainer" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/img1" /> 

getview() of galleryadapter (extends baseadapter):

public view getview(int position, view convertview, viewgroup parent)  {     if (convertview == null)      {         mholder = new viewholder();         mframelayout = (framelayout) layoutinflater.from(parent.getcontext()).inflate(r.layout.gallery_item, null);         mframelayout.setpadding(25,0,25,0);         //add fragment frame layout         mfragmentmanager.begintransaction().add(mframelayout.getid(), new cardfrontfragment()).commit();          convertview = mframelayout;         mholder.framelayout = mframelayout;         convertview.settag(mholder);     }      else      {         mholder = (viewholder) convertview.gettag();     }      mholder.framelayout.setlayoutparams(new gallery.layoutparams(gallery.layoutparams.match_parent, gallery.layoutparams.match_parent));     return mframelayout; }  private static class viewholder {     framelayout framelayout; } 

it's working, problem gallery called getview() in infinite loop.

it's onmeasure issue, here stack:

thread [<1> main] (suspended (breakpoint @ line 62 in galleryadapter3))     galleryadapter3.getview(int, view, viewgroup) line: 62   gallery(absspinner).onmeasure(int, int) line: 193    gallery(view).measure(int, int) line: 15518  relativelayout.measurechildhorizontal(view, relativelayout$layoutparams, int, int) line: 681     relativelayout.onmeasure(int, int) line: 461     relativelayout(view).measure(int, int) line: 15518   framelayout(viewgroup).measurechildwithmargins(view, int, int, int, int) line: 4825  framelayout.onmeasure(int, int) line: 310    framelayout(view).measure(int, int) line: 15518  linearlayout.measurevertical(int, int) line: 847     linearlayout.onmeasure(int, int) line: 588   linearlayout(view).measure(int, int) line: 15518     phonewindow$decorview(viewgroup).measurechildwithmargins(view, int, int, int, int) line: 4825    phonewindow$decorview(framelayout).onmeasure(int, int) line: 310     phonewindow$decorview.onmeasure(int, int) line: 2176     phonewindow$decorview(view).measure(int, int) line: 15518    viewrootimpl.performmeasure(int, int) line: 1874     viewrootimpl.measurehierarchy(view, windowmanager$layoutparams, resources, int, int) line: 1089  viewrootimpl.performtraversals() line: 1265  viewrootimpl.dotraversal() line: 989     viewrootimpl$traversalrunnable.run() line: 4351  choreographer$callbackrecord.run(long) line: 749     choreographer.docallbacks(int, long) line: 562   choreographer.doframe(long, int) line: 532   choreographer$framedisplayeventreceiver.run() line: 735  handler.handlecallback(message) line: 725    choreographer$framehandler(handler).dispatchmessage(message) line: 92    looper.loop() line: 137  activitythread.main(string[]) line: 5041     method.invokenative(object, object[], class, class[], class, int, boolean) line: not available [native method]   method.invoke(object, object...) line: 511   zygoteinit$methodandargscaller.run() line: 793   zygoteinit.main(string[]) line: 560  nativestart.main(string[]) line: not available [native method]   

10x lot!

a single column gridview can used gallery substitute


Comments