diff --git a/badgeviewlib/build.gradle b/badgeviewlib/build.gradle index ac5746d..c9dc586 100644 --- a/badgeviewlib/build.gradle +++ b/badgeviewlib/build.gradle @@ -26,7 +26,7 @@ publish { userOrg = 'qstumn' groupId = 'q.rorbin' artifactId = 'badgeview' - publishVersion = '1.1.2' + publishVersion = '1.1.3' desc = 'android badgeview can drag dismiss like QQ' website = 'https://github.com/qstumn/BadgeView' } diff --git a/badgeviewlib/src/main/java/q/rorbin/badgeview/QBadgeView.java b/badgeviewlib/src/main/java/q/rorbin/badgeview/QBadgeView.java index 281a205..c96a30f 100644 --- a/badgeviewlib/src/main/java/q/rorbin/badgeview/QBadgeView.java +++ b/badgeviewlib/src/main/java/q/rorbin/badgeview/QBadgeView.java @@ -12,16 +12,18 @@ import android.graphics.RectF; import android.graphics.drawable.Drawable; import android.os.Build; +import android.os.Parcelable; import android.text.TextPaint; import android.text.TextUtils; import android.util.AttributeSet; -import android.util.Log; +import android.util.SparseArray; import android.view.Gravity; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import android.view.ViewParent; import android.widget.FrameLayout; +import android.widget.RelativeLayout; import java.util.ArrayList; import java.util.List; @@ -153,8 +155,9 @@ public Badge bindTarget(final View targetView) { ViewGroup.LayoutParams targetParams = targetView.getLayoutParams(); targetContainer.removeView(targetView); final BadgeContainer badgeContainer = new BadgeContainer(getContext()); - badgeContainer.setId(targetView.getId()); - targetView.setId(View.NO_ID); + if(targetContainer instanceof RelativeLayout){ + badgeContainer.setId(targetView.getId()); + } targetContainer.addView(badgeContainer, index, targetParams); badgeContainer.addView(targetView); badgeContainer.addView(this); @@ -827,6 +830,13 @@ public PointF getDragCenter() { private class BadgeContainer extends ViewGroup { + @Override + protected void dispatchRestoreInstanceState(SparseArray container) { + if(!(getParent() instanceof RelativeLayout)){ + super.dispatchRestoreInstanceState(container); + } + } + public BadgeContainer(Context context) { super(context); }