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
Post a Comment