2016-09-27 15 views
13

Tôi đang sử dụng ondragListener để xem chế độ xem. Gốc của tôi là viewgroup với nhiều hơn viewgroup vùng chứa vào thư mục gốc và đang thêm chế độ xem như imageview/textview bên trong các vùng chứa.lỗi ngăn xếp ngăn xếp trên bản cập nhật thả kéo thả

Nếu tôi sử dụng container chỉ (ViewGroup) như linearlayout cho kéo và thả mịn làm việc của mình nhưng nếu tôi bắt đầu thêm quan điểm như imageview bên trong các container và vẫn kéo điểm được container chỉ giữ quan điểm này.

onActionDrop nhận được stackoverflow error : stack size 8MB.

onActionDrop code is:

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);} 

Lỗi Logs:

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

Đây có phải là ngăn xếp đầy đủ không? –

+1

Mã của bạn có vẻ đúng nhưng vấn đề có thể là với số lượng các thành phần trực quan mà bạn đang di chuyển từ một container này sang thùng chứa khác, bạn có thể cần phải hủy và tạo lại chế độ xem đã kéo hoặc thứ gì đó tương tự. Vui lòng xem vấn đề khác này http://stackoverflow.com/questions/11451393/what-to-do-on-transactiontoolargeexception – eduyayo

+0

@TinTran Có đây là nó. –

Trả lời

0

Tôi nghĩ bạn nên nhìn vào các ngoại lệ TransactionTooLarge thay vì StackOverflow một. TransactionTooLarge đôi khi có thể khó theo dõi nhưng thường có liên quan đến quá nhiều dữ liệu được gửi giữa Activity/Fragment hoặc được lưu trữ trong savedInstanceState. Như đã chỉ ra bởi @eduyayo trong một chú thích ở trên, bạn có thể có một cái nhìn vào bài đăng này:

What to do on TransactionTooLargeException

tôi đã trải qua một lỗi tương tự một khi trở lại và đó là do một danh sách khổng lồ đã được truyền từ một Hoạt động cho một mảnh và vụ tai nạn xảy ra ở một nơi hoàn toàn ngẫu nhiên.

Các vấn đề liên quan