From a327fb9d936d455c71bb39053834dedaaa429fc8 Mon Sep 17 00:00:00 2001 From: Vincent Zhou Date: Mon, 20 Jul 2015 14:55:39 +0800 Subject: [PATCH 1/2] fix child count display bug --- src/net/mobctrl/viewholder/ParentViewHolder.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/net/mobctrl/viewholder/ParentViewHolder.java b/src/net/mobctrl/viewholder/ParentViewHolder.java index a75ddfe..b4974e7 100755 --- a/src/net/mobctrl/viewholder/ParentViewHolder.java +++ b/src/net/mobctrl/viewholder/ParentViewHolder.java @@ -56,8 +56,10 @@ public void bindView(final ItemData itemData, final int position, if (children != null) { count.setText(String.format("(%s)", itemData.getChildren() .size())); - } - count.setVisibility(View.VISIBLE); + count.setVisibility(View.VISIBLE); + } else { + count.setVisibility(View.GONE); + } } else { expand.setRotation(0); count.setVisibility(View.GONE); From 881fece2312476395c5ca73f503f37b0661023f4 Mon Sep 17 00:00:00 2001 From: Vincent Zhou Date: Mon, 20 Jul 2015 14:58:41 +0800 Subject: [PATCH 2/2] fix child count display bug --- .../mobctrl/viewholder/ParentViewHolder.java | 169 +++++++++--------- 1 file changed, 86 insertions(+), 83 deletions(-) diff --git a/src/net/mobctrl/viewholder/ParentViewHolder.java b/src/net/mobctrl/viewholder/ParentViewHolder.java index b4974e7..fae5710 100755 --- a/src/net/mobctrl/viewholder/ParentViewHolder.java +++ b/src/net/mobctrl/viewholder/ParentViewHolder.java @@ -5,6 +5,7 @@ import net.mobctrl.interfaces.ItemDataClickListener; import net.mobctrl.model.ItemData; import net.mobctrl.treerecyclerview.R; + import android.animation.ValueAnimator; import android.animation.ValueAnimator.AnimatorUpdateListener; import android.annotation.TargetApi; @@ -25,95 +26,97 @@ */ public class ParentViewHolder extends BaseViewHolder { - public ImageView image; - public TextView text; - public ImageView expand; - public TextView count; - public RelativeLayout relativeLayout; - private int itemMargin; + public ImageView image; + public TextView text; + public ImageView expand; + public TextView count; + public RelativeLayout relativeLayout; + private int itemMargin; + + public ParentViewHolder(View itemView) { + super(itemView); + image = (ImageView) itemView.findViewById(R.id.image); + text = (TextView) itemView.findViewById(R.id.text); + expand = (ImageView) itemView.findViewById(R.id.expand); + count = (TextView) itemView.findViewById(R.id.count); + relativeLayout = (RelativeLayout) itemView.findViewById(R.id.container); + itemMargin = itemView.getContext().getResources() + .getDimensionPixelSize(R.dimen.item_margin); + } - public ParentViewHolder(View itemView) { - super(itemView); - image = (ImageView) itemView.findViewById(R.id.image); - text = (TextView) itemView.findViewById(R.id.text); - expand = (ImageView) itemView.findViewById(R.id.expand); - count = (TextView) itemView.findViewById(R.id.count); - relativeLayout = (RelativeLayout) itemView.findViewById(R.id.container); - itemMargin = itemView.getContext().getResources() - .getDimensionPixelSize(R.dimen.item_margin); - } + public void bindView(final ItemData itemData, final int position, + final ItemDataClickListener imageClickListener) { + RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) expand + .getLayoutParams(); + params.leftMargin = itemMargin * itemData.getTreeDepth(); + expand.setLayoutParams(params); + text.setText(itemData.getText()); + if (itemData.isExpand()) { + expand.setRotation(45); + List children = itemData.getChildren(); + if (children != null) { + count.setText(String.format("(%s)", itemData.getChildren() + .size())); + count.setVisibility(View.VISIBLE); + } else { + count.setVisibility(View.GONE); + } + } else { + expand.setRotation(0); + count.setVisibility(View.GONE); + } + relativeLayout.setOnClickListener(new OnClickListener() { - public void bindView(final ItemData itemData, final int position, - final ItemDataClickListener imageClickListener) { - RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) expand - .getLayoutParams(); - params.leftMargin = itemMargin * itemData.getTreeDepth(); - expand.setLayoutParams(params); - text.setText(itemData.getText()); - if (itemData.isExpand()) { - expand.setRotation(45); - List children = itemData.getChildren(); - if (children != null) { - count.setText(String.format("(%s)", itemData.getChildren() - .size())); - count.setVisibility(View.VISIBLE); - } else { + @Override + public void onClick(View v) { + if (imageClickListener != null) { + if (itemData.isExpand()) { + imageClickListener.onHideChildren(itemData); + itemData.setExpand(false); + rotationExpandIcon(45, 0); + count.setVisibility(View.GONE); + } else { + imageClickListener.onExpandChildren(itemData); + itemData.setExpand(true); + rotationExpandIcon(0, 45); + List children = itemData.getChildren(); + if (children != null) { + count.setText(String.format("(%s)", itemData + .getChildren().size())); + count.setVisibility(View.VISIBLE); + } else { count.setVisibility(View.GONE); } - } else { - expand.setRotation(0); - count.setVisibility(View.GONE); - } - relativeLayout.setOnClickListener(new OnClickListener() { - - @Override - public void onClick(View v) { - if (imageClickListener != null) { - if (itemData.isExpand()) { - imageClickListener.onHideChildren(itemData); - itemData.setExpand(false); - rotationExpandIcon(45, 0); - count.setVisibility(View.GONE); - } else { - imageClickListener.onExpandChildren(itemData); - itemData.setExpand(true); - rotationExpandIcon(0, 45); - List children = itemData.getChildren(); - if (children != null) { - count.setText(String.format("(%s)", itemData - .getChildren().size())); - } - count.setVisibility(View.VISIBLE); - } - } + } + } - } - }); - image.setOnLongClickListener(new OnLongClickListener() { + } + }); + image.setOnLongClickListener(new OnLongClickListener() { - @Override - public boolean onLongClick(View view) { - Toast.makeText(view.getContext(), "longclick", - Toast.LENGTH_SHORT).show(); - return false; - } - }); - } + @Override + public boolean onLongClick(View view) { + Toast.makeText(view.getContext(), "longclick", + Toast.LENGTH_SHORT).show(); + return false; + } + }); + } - @TargetApi(Build.VERSION_CODES.HONEYCOMB) - private void rotationExpandIcon(float from, float to) { - if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { - ValueAnimator valueAnimator = ValueAnimator.ofFloat(from, to); - valueAnimator.setDuration(150); - valueAnimator.setInterpolator(new DecelerateInterpolator()); - valueAnimator.addUpdateListener(new AnimatorUpdateListener() { + @TargetApi(Build.VERSION_CODES.HONEYCOMB) + private void rotationExpandIcon(float from, float to) { + if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { + ValueAnimator valueAnimator = ValueAnimator.ofFloat(from, to); + valueAnimator.setDuration(150); + valueAnimator.setInterpolator(new DecelerateInterpolator()); + valueAnimator.addUpdateListener(new AnimatorUpdateListener() { - @Override - public void onAnimationUpdate(ValueAnimator valueAnimator) { - expand.setRotation((Float) valueAnimator.getAnimatedValue()); - } - }); - valueAnimator.start(); - } - } + @Override + public void onAnimationUpdate(ValueAnimator valueAnimator) { + expand.setRotation((Float) valueAnimator.getAnimatedValue()); + } + }); + valueAnimator.start(); + } + } }