From d291cc390552fea8e020de76c8e8921c8587fc81 Mon Sep 17 00:00:00 2001 From: Rasoul Miri Date: Wed, 6 Sep 2017 14:43:35 +0430 Subject: [PATCH] bug fix onClickListener 2 --- .../rmiri/skeleton/Master/SkeletonMaster.java | 2 +- .../java/io/rmiri/skeleton/SkeletonGroup.java | 11 +++----- .../sample/Adapter/AdapterSample2.java | 27 ++++++++++++++++++- 3 files changed, 30 insertions(+), 10 deletions(-) diff --git a/library/src/main/java/io/rmiri/skeleton/Master/SkeletonMaster.java b/library/src/main/java/io/rmiri/skeleton/Master/SkeletonMaster.java index b64b650..9554ba4 100644 --- a/library/src/main/java/io/rmiri/skeleton/Master/SkeletonMaster.java +++ b/library/src/main/java/io/rmiri/skeleton/Master/SkeletonMaster.java @@ -66,7 +66,7 @@ public void init(Context context, @Nullable AttributeSet attrs) { skeletonAttribute.setShowSkeleton(typedArray.getBoolean(R.styleable.Skeleton_SK_isShowSkeleton, true)); skeletonAttribute.setAutoStartAnimation(typedArray.getBoolean(R.styleable.Skeleton_SK_autoStartAnimation, true)); - skeletonAttribute.setHoldTouchEventsFromChildren(typedArray.getBoolean(R.styleable.Skeleton_SK_isHoldTouchEventsFromChildren, true)); + skeletonAttribute.setHoldTouchEventsFromChildren(typedArray.getBoolean(R.styleable.Skeleton_SK_isHoldTouchEventsFromChildren, false)); skeletonAttribute.setColorBackgroundMain(typedArray.getColor(R.styleable.Skeleton_SK_backgroundMainColor, SkeletonAttribute.DEFAULT_COLOR_BACKGROUND_MAIN)); skeletonAttribute.setColorHighLight(typedArray.getColor(R.styleable.Skeleton_SK_highLightColor, SkeletonAttribute.DEFAULT_COLOR_HIGHLIGHT_GRADIENT)); skeletonAttribute.setColorBackgroundViews(typedArray.getColor(R.styleable.Skeleton_SK_BackgroundViewsColor, SkeletonAttribute.DEFAULT_COLOR_BACKGROUND_VIEWS)); diff --git a/library/src/main/java/io/rmiri/skeleton/SkeletonGroup.java b/library/src/main/java/io/rmiri/skeleton/SkeletonGroup.java index 1764145..4b90fa1 100644 --- a/library/src/main/java/io/rmiri/skeleton/SkeletonGroup.java +++ b/library/src/main/java/io/rmiri/skeleton/SkeletonGroup.java @@ -94,7 +94,7 @@ protected void onLayout(boolean changed, int l, int t, int r, int b) { super.onLayout(changed, l, t, r, b); CLog.i("SkeletonGroup onLayout " + position); - //add all children extend from SkeletonGradient + //add all children extend from SkeletonView if (skeletonAttributesChildren == null && skeletonAttribute.isShowSkeleton()) { CLog.i("SkeletonGroup onLayout and skeletonAttributesChildren == null ... " + position); skeletonAttributesChildren = new ArrayList<>(); @@ -427,8 +427,9 @@ private void setupInitialAnimation() { if (skeletonAttributesChildren != null && skeletonAttributesChildren.size() > 0) { isCanDraw = true; isAnimationPlay = true; + setHoldTouchEventsFromChildren(true); // enable Hold touchEvents from this and children } else { - // skeletonGroup no child extend from skeletonGradient + // skeletonGroup no child extend from skeletonView return; } @@ -526,7 +527,6 @@ private void setupFinishingAnimation() { isLastLoopAnimation = false; isCanDrawFinishState = false; - skeletonAttribute.setHoldTouchEventsFromChildren(false); //remove animation listener valueAnimator.removeAllListeners(); @@ -536,11 +536,6 @@ private void setupFinishingAnimation() { // disable Hold touchEvents from this and children setHoldTouchEventsFromChildren(false); - for (View child : getAllChildren(getChildAt(0))) { - if (child != null && child instanceof SkeletonView) { - ((SkeletonView) child).setHoldTouchEventsFromChildren(false); - } - } //fire finish state for listener if (skeletonListener != null) diff --git a/sample/src/main/java/io/rmiri/skeleton/sample/Adapter/AdapterSample2.java b/sample/src/main/java/io/rmiri/skeleton/sample/Adapter/AdapterSample2.java index 1a88e2b..efd51da 100644 --- a/sample/src/main/java/io/rmiri/skeleton/sample/Adapter/AdapterSample2.java +++ b/sample/src/main/java/io/rmiri/skeleton/sample/Adapter/AdapterSample2.java @@ -77,7 +77,7 @@ public void onBindViewHolder(ViewHolder holder, int position) { holder.cardView.setPreventCornerOverlap(false); -// holder.skeletonGroup.setPosition(position);//just for debug log + holder.skeletonGroup.setPosition(position);//just for debug log if (skeletonDetail.isSkeletonIsOn()) { //need show s for 2 cards @@ -104,6 +104,31 @@ public void onBindViewHolder(ViewHolder holder, int position) { //set photo by Picasso lib Picasso.with(context).load(cardObj.getPhoto()).into(holder.photoACImgV); + +// holder.addToParkingImgBtn.setOnClickListener(new View.OnClickListener() { +// @Override +// public void onClick(View v) { +// Log.i("setOnClickListener", "addToParkingImgBtn"); +// } +// }); +// holder.compareImgBtn.setOnClickListener(new View.OnClickListener() { +// @Override +// public void onClick(View v) { +// Log.i("setOnClickListener", "compareImgBtn"); +// } +// }); +// holder.cardView.setOnClickListener(new View.OnClickListener() { +// @Override +// public void onClick(View v) { +// Log.i("setOnClickListener", "cardView"); +// } +// }); holder.titleTv.setOnClickListener(new View.OnClickListener() { +// @Override +// public void onClick(View v) { +// Log.i("setOnClickListener", "titleTv"); +// } +// }); + } @Override