ExpandableTextView

ExpandableTextView is an android TextView library that performs multiline ellipsize.

ExpandableTextView

Gradle

Repository

Add this to your root build.gradle file.

allprojects {
    repositories {
         ...
         maven { url 'https://jitpack.io' }
    }
}

Dependency

Add this to your app build.gradle file.

dependencies {
    ...
    implementation 'com.github.yuzumone:ExpandableTextView:0.2.4'
}

Usage

XML

<net.expandable.ExpandableTextView
    android:id="@+id/text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    />

Attributes

<net.expandable.ExpandableTextView
    app:expand="false"
    app:expand_enabled="true"
    app:collapse_lines="1"
    />

Expand

To set a state the TextView of ellipsize you use the setExpand functionality via xml or kotlin. Default value is false.

XML

app:expand="true"
or
app:expand="false"

Kotlin

textView.setExpand(true)
or
textView.setExpand(false)

Expand_enabled

To set a state as to whether expand when clicking you use the setExpandEnabled functionality via xml or kotlin. Default value is true.

XML

app:expand_enabled="true"
or
app:expand_enabled="false"

Kotlin

textView.setExpandEnabled(true)
or
textView.setExpandEnabled(false)

Collapse_lines

To set the number of lines when TextView ellipsize you use the setCollapseLines functionality via xml or kotlin. Default value is 1.

XML

app:collapse_lines="1"

Kotlin

textView.setCollapseLines(1)

OnExpandableClickListener

textView.setOnExpandableClickListener(object : OnExpandableClickListener {
    override fun expand(view: ExpandableTextView) {
        // Expand action
    }

    override fun collapse(view: ExpandableTextView) {
       // Collapse action
    }
})
// OR
textView.setOnExpandableClickListener(
                onExpand = { // Expand action },
                onCollapse = { // Collapse action }
)

GitHub