From 025a5fe1bdc792d4027d54084fe4d112d6c63e7c Mon Sep 17 00:00:00 2001 From: vikash verma Date: Sun, 25 Jun 2017 00:03:40 +0530 Subject: [PATCH] fix for issue #2 when text takes up less line than threshold, do not show the expand button . --- .../android/activities/MainActivity.java | 2 ++ app/src/main/res/values/lorem_ipsum.xml | 1 + .../android/views/ExpandableTextView.java | 20 +++++++++++++++++++ 3 files changed, 23 insertions(+) diff --git a/app/src/main/java/at/blogc/android/activities/MainActivity.java b/app/src/main/java/at/blogc/android/activities/MainActivity.java index 4f4cbc4..12dc866 100644 --- a/app/src/main/java/at/blogc/android/activities/MainActivity.java +++ b/app/src/main/java/at/blogc/android/activities/MainActivity.java @@ -39,6 +39,8 @@ protected void onCreate(final Bundle savedInstanceState) final ExpandableTextView expandableTextView = (ExpandableTextView) this.findViewById(R.id.expandableTextView); final Button buttonToggle = (Button) this.findViewById(R.id.button_toggle); + expandableTextView.setToggleButton(buttonToggle); + // set animation duration via code, but preferable in your layout files by using the animation_duration attribute expandableTextView.setAnimationDuration(750L); diff --git a/app/src/main/res/values/lorem_ipsum.xml b/app/src/main/res/values/lorem_ipsum.xml index b7f0026..71ea86d 100644 --- a/app/src/main/res/values/lorem_ipsum.xml +++ b/app/src/main/res/values/lorem_ipsum.xml @@ -17,4 +17,5 @@ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse a risus sed nulla faucibus commodo. Donec iaculis pretium facilisis. Praesent rutrum varius arcu, sed viverra ipsum malesuada id. Suspendisse nec mauris eleifend, maximus elit et, venenatis quam. Duis at maximus nisi, a congue sapien. Curabitur facilisis at nisi vitae vulputate. Phasellus vel orci et massa scelerisque ultrices. Morbi eget ipsum porttitor arcu volutpat convallis. Pellentesque velit libero, interdum sed consequat at, eleifend et nisi. Interdum et malesuada fames ac ante ipsum primis in faucibus. Sed convallis massa imperdiet, consectetur lectus sodales, finibus velit. Donec quis tortor vel quam porta hendrerit. Vivamus vitae consectetur orci, sed feugiat turpis. + Lorem ipsum dolor sit amet, consectetur adipiscing elit. \ No newline at end of file diff --git a/expandabletextview/src/main/java/at/blogc/android/views/ExpandableTextView.java b/expandabletextview/src/main/java/at/blogc/android/views/ExpandableTextView.java index f53d230..a487d99 100644 --- a/expandabletextview/src/main/java/at/blogc/android/views/ExpandableTextView.java +++ b/expandabletextview/src/main/java/at/blogc/android/views/ExpandableTextView.java @@ -8,6 +8,7 @@ import android.content.res.TypedArray; import android.os.Build; import android.util.AttributeSet; +import android.view.View; import android.view.ViewGroup; import android.view.animation.AccelerateDecelerateInterpolator; import android.widget.TextView; @@ -48,6 +49,7 @@ public class ExpandableTextView extends TextView private boolean animating; private boolean expanded; private int collapsedHeight; + private View mToggleButton; public ExpandableTextView(final Context context) { @@ -360,4 +362,22 @@ public interface OnExpandListener */ void onCollapse(ExpandableTextView view); } + + public void setToggleButton(View mToggleButton) { + this.mToggleButton = mToggleButton; + } + + @Override + protected void onLayout(boolean changed, int left, int top, int right, + int bottom) { + super.onLayout(changed, left, top, right, bottom); + + if (mToggleButton != null) { + if(getLineCount() >= this.maxLines){ + mToggleButton.setVisibility(VISIBLE); + }else { + mToggleButton.setVisibility(GONE); + } + } + } }