2016-09-27 38 views
13

Görünüm sürükleme için ondragListener kullanıyorum. Köküm viewgroup ile daha fazla viewgroup kapsayıcıya ve kapsayıcılara imageview/textview gibi görünümler ekliyorum.Yığınlama açılırken hata oluştu Açılışta bırakma güncelleştirmesi

ben nefes için linearlayout gibi tek bir kap (ViewGroup) kullanın ve çalışma cezası damla ama ben bu kapların içine imageview böyle manzara eklemeye başlayın ve hala nokta konteynerleri sadece bu görüşü düzenliyor sürükleyerek eğer.

onActionDrop, bir stackoverflow error : stack size 8MB alır.

onActionDrop kodudur:

if (e.getAction()==DragEvent.ACTION_DROP) { 
     final View view = (View) e.getLocalState(); 
     final ViewGroup from = (ViewGroup) view.getParent(); 
     from.removeView(view); 
     final LinearLayout toView = (LinearLayout) v; 
     toView.addView(view);} 

Hata Kayıtlar:

java.lang.StackOverflowError: stack size 8MB 
    android.view.ViewGroup.resetResolvedLayoutDirection(ViewGroup.java:6546) 
    android.os.TransactionTooLargeException: data parcel size 26840220 bytes 
android.os.BinderProxy.transactNative(Native Method) 
android.os.BinderProxy.transact(Binder.java:503) 
android.app.ActivityManagerProxy.handleApplicationCrash(ActivityManagerNative.java:4425) 
com.android.internal.os.RuntimeInit$UncaughtHandler.uncaughtException(RuntimeInit.java:90) 
java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:693) 
java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:690) 
+0

Bu tam bir stacktrace mı? –

+1

Kodunuz doğru görünüyor ancak sorun, bir kapsayıcıdan diğerine taşıdığınız görsel bileşenlerin miktarı ile olabilir, sürüklenen görünümü veya böyle bir şeyi yeniden oluşturmanız ve yeniden oluşturmanız gerekebilir. Lütfen bu diğer konuya bakın http://stackoverflow.com/questions/11451393/what-to-do-on-transactiontoolargeexception – eduyayo

+0

@TinTran Evet budur. –

cevap

0

Sana TransactionTooLarge istisna yerine StackOverflow'daki biri bakıyor gerektiğini düşünüyorum. TransactionTooLarge bazen izlemek zor olabilir ama genellikle Activity/Fragment arasında gönderilen veya savedInstanceState içinde saklanan çok fazla veri ile ilgili bir şey vardır.

What to do on TransactionTooLargeException

Bir süre önce benzer bir hatayla karşılaştı ve bir geçirilen ediliyordu büyük bir listeye kaynaklandığını: Yukarıdaki yorumunda @eduyayo tarafından belirttiği gibi, bu yazı bir göz sürebilir Bir Parçanın Aktivitesi ve çarpışma tamamen rastgele bir yerde gerçekleşti.