Android's TextView that can expand/collapse like the Google Play's app description

Overview

ExpandableTextView Android Arsenal

ExpandableTextView is an Android library that allows developers to easily create an TextView which can expand/collapse just like the Google Play's app description. Feel free to use it all you want in your Android apps provided that you cite this project.

Quick Demo

Requirements

API Level 8 (Froyo) and above.

Setup

The library is pushed to Maven Central as an AAR, so you just need to add the followings to your build.gradle file:

dependencies {
    compile 'com.ms-square:expandableTextView:0.1.4'
}

Usage

Using the library is really simple, just look at the source code of the provided sample. (Look at the SampleTextListAdapter.java for the use within a ListView)

The important thing to note is that the view Ids for TextView and ImageButton must be set to "@id/expandable_text" and "@id/expand_collapse" respectively for this library to work.

Also, you can optionally set the following attributes in your layout xml file to customize the behavior of the ExpandableTextView.

  • maxCollapsedLines (defaults to 8) The maximum number of text lines allowed to be shown when the TextView gets collapsed

  • animDuration (defaults to 300ms) Duration of the Animation for the expansion/collapse

  • animAlphaStart (defaults to 0.7f) Alpha value of the TextView when the animation starts (NOTE) Set this value to 1 if you want to disable the alpha animation.

  • expandDrawable Customize a drawable set to ImageButton to expand the TextView

  • collapseDrawable Customize a drawable set to ImageButton to collapse the TextView

  <!-- sample xml -->
  <com.ms.square.android.expandabletextview.ExpandableTextView
      xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:expandableTextView="http://schemas.android.com/apk/res-auto"
      android:id="@+id/expand_text_view"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      expandableTextView:maxCollapsedLines="4"
      expandableTextView:animDuration="200">
      <TextView
          android:id="@id/expandable_text"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:layout_marginLeft="10dp"
          android:layout_marginRight="10dp"
          android:textSize="16sp"
          android:textColor="#666666" />
      <ImageButton
          android:id="@id/expand_collapse"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:padding="16dp"
          android:layout_gravity="right|bottom"
          android:background="@android:color/transparent"/>
  </com.ms.square.android.expandabletextview.ExpandableTextView>
// sample code snippet to set the text content on the ExpandableTextView
ExpandableTextView expTv1 = (ExpandableTextView) rootView.findViewById(R.id.sample1)
                    .findViewById(R.id.expand_text_view);
                    
// IMPORTANT - call setText on the ExpandableTextView to set the text content to display
expTv1.setText(getString(R.string.dummy_text1));

License

Copyright 2014 Manabu Shimobe

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Comments
  • java.lang.NullPointerException

    java.lang.NullPointerException

    java.lang.NullPointerException at com.ms.square.android.expandabletextview.ExpandableTextView.findViews(ExpandableTextView.java:226) at com.ms.square.android.expandabletextview.ExpandableTextView.onFinishInflate(ExpandableTextView.java:151) at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:814) at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64) at android.view.LayoutInflater.rInflate(LayoutInflater.java:782) at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:809) at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64) at android.view.LayoutInflater.rInflate(LayoutInflater.java:782) at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:809) at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64) at android.view.LayoutInflater.rInflate(LayoutInflater.java:782) at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:809) at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64) at android.view.LayoutInflater.rInflate(LayoutInflater.java:782) at android.view.LayoutInflater.inflate(LayoutInflater.java:504) at android.view.LayoutInflater.inflate(LayoutInflater.java:385) at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:400) at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:332) at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:350) at com.android.tools.idea.rendering.RenderService$5.compute(RenderService.java:688) at com.android.tools.idea.rendering.RenderService$5.compute(RenderService.java:677) at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:932) at com.android.tools.idea.rendering.RenderService.createRenderSession(RenderService.java:677) at com.android.tools.idea.rendering.RenderService.render(RenderService.java:815) at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager.doRender(AndroidLayoutPreviewToolWindowManager.java:646) at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager.access$1700(AndroidLayoutPreviewToolWindowManager.java:82) at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager$7$1.run(AndroidLayoutPreviewToolWindowManager.java:589) at com.intellij.openapi.progress.impl.ProgressManagerImpl$2.run(ProgressManagerImpl.java:178) at com.intellij.openapi.progress.ProgressManager.executeProcessUnderProgress(ProgressManager.java:209) at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:212) at com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcess(ProgressManagerImpl.java:171) at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager$7.run(AndroidLayoutPreviewToolWindowManager.java:584) at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:320) at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:310) at com.intellij.util.ui.update.MergingUpdateQueue$2.run(MergingUpdateQueue.java:254) at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:269) at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:227) at com.intellij.util.ui.update.MergingUpdateQueue.run(MergingUpdateQueue.java:217) at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238) at com.intellij.util.Alarm$Request$1.run(Alarm.java:327) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)

    This error, im using Android Studio & Gradle.

    compile 'com.ms-square:expandableTextView:0.1.3'
    
    opened by LinkOut 8
  • After expanding, it does not show last few lines

    After expanding, it does not show last few lines

    When we expand textview, it is not showing last few lines because getRealTextViewHeight function is not giving correct textview height.I think it should be called on the right place.Please look into this.

    bug 
    opened by ghost 8
  • Can't build with Gradle

    Can't build with Gradle

    I use Intellij Idea for android development. I have not been able to build the app with Gradle. I get this error: No such property: GROUP for class: org.gradle.api.publication.maven.internal.ant.DefaultGroovyMavenDeployer

    opened by tundebabzy 5
  • It have a bug, I don't know why

    It have a bug, I don't know why

    You can try add a button a your demo project, and on the onClickListener you set the dummy_text2 again. like

        expTv2.setText(getString(R.string.dummy_text2));
    
        Button bt = (Button) findViewById(R.id.test);
    
        bt.setOnClickListener(new View.OnClickListener() {
    
            @Override
            public void onClick(View v) {
                expTv2.setText(getString(R.string.dummy_text2));
            }
        });
    

    after the button clicked, (that is the same text is set again after view created and when textview is collapsed), the textview can't expand fully. I found the mMeasuredTextHeight is a wrong value.

    may be I can solve this problem.

    thank you for your code.

    bug 
    opened by com314159 5
  • Expand Collapse Icons not visible

    Expand Collapse Icons not visible

    when i tried to implement the expandable text-view in a list view The expand and collapse icons are not appearing could you please help me out if i am doing wrong

    MyCode: List_rowitem

    <!--  ListRow Left sied Thumbnail image -->
    <LinearLayout android:id="@+id/thumbnail"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="3dip"
        android:layout_alignParentLeft="true"
        android:background="@android:color/transparent"
        android:layout_marginRight="5dp">
    
        <ImageView
            android:id="@+id/list_image"
            android:contentDescription="@string/app_name"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:background="@drawable/imagebordercolor"
            />
    
    </LinearLayout>
    
    <!-- Title Of Song-->
    
    <TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/thumbnail"
        android:layout_toRightOf="@+id/thumbnail"
        android:textColor="@android:color/white"
        android:textSize="15sp"
        android:textStyle="bold"
        android:typeface="sans" />
    
    <!-- Description -->
    <com.fiveytechnologies.bhagavadgita.views.ExpandableTextView 
        android:id="@+id/expand_text_view"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/title"
        android:focusable="false"
        android:focusableInTouchMode="false"
        android:layout_marginTop="1dip"
        android:layout_toRightOf="@+id/thumbnail"
        expandableTextView:maxCollapsedLines="8"
        expandableTextView:animAlphaStart="1"
        >
    
       <TextView
            android:id="@id/expandable_text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="4dp"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:textSize="12sp"
            android:textColor="@android:color/white" />
    
        <ImageButton
            android:id="@id/expand_collapse"
            android:contentDescription="@string/app_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="1dp"
            android:layout_gravity="right|bottom"
            android:background="@android:color/transparent"/>
    
    
     </com.fiveytechnologies.bhagavadgita.views.ExpandableTextView>
    
    
    
    
    
    <!-- Rightend Duration -->
    <TextView
        android:id="@+id/duration"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignTop="@id/title"
        android:gravity="right"
        android:text="@string/slokacount"
        android:layout_marginRight="5dip"
        android:textSize="12sp"
        android:textColor="#10bcc9"
        android:textStyle="bold"
        android:visibility="gone"
        />
    
     <!-- Rightend Arrow -->
    
    question 
    opened by vrvmadan 3
  • Enable support for TextView expand/collapse toggle and custom Ids

    Enable support for TextView expand/collapse toggle and custom Ids

    Added ability to choose the expand/collapse toggle view, currently ImageButton and TextView are supported, ImageButton is the default.

    Added support for custom Ids of the expandable TextView and expand/collapse toggle View.

    opened by gergely-sallai 2
  • Extra blank space when expanded inside RecyclerView

    Extra blank space when expanded inside RecyclerView

    Hi Manabu-GT, I am using a slightly modified version of your library, the only modification I did was to remove the drawable for expand and collapse and replace that with a TextView instead so that it shows Read More and Read Less testgif

    When I expand an item in the RecyclerView and scroll down and come back up, I find it collapsed, I also find extra blank spaces scattered everywhere, am I missing something? Also as per the GIF if you notice, it doesn't expand another time. Thanks for your suggestions in advance

    opened by slidenerd 2
  • Error:No such property: GROUP for class: org.gradle.api.publication.maven.internal.ant.DefaultGroovyMavenDeployer

    Error:No such property: GROUP for class: org.gradle.api.publication.maven.internal.ant.DefaultGroovyMavenDeployer

    I resolved this by commenting // for maven central deployment //apply from: 'https://raw.githubusercontent.com/chrisbanes/gradle-mvn-push/master/gradle-mvn-push.gradle' in build.gradle of lib module

    bug 
    opened by Defuera 2
  • Hard coded id in XML layout

    Hard coded id in XML layout

    mTv = (TextView) findViewById(R.id.expandable_text);
    mButton = (ImageButton) findViewById(R.id.expand_collapse);
    

    These lines in findViews mean that the id for the children of ExpandableTextView must be expandable_text and expandand_collapse for the TextView and ImageButton respectively.

    I initially changed the ids in my XML layout and slammed into a null-pointer exception until i dug into the code. It will nice if this "limitation" is made known to users or better still, remove the hard coded ids. I can submit a pull request to remove the hard coded ids.

    opened by tundebabzy 2
  • please add clearAnimation to onAnimationEnd

    please add clearAnimation to onAnimationEnd

    If you not clearAnimation after textview expand or collapse , the android system will call onMeasure infinite loop.

    add clearAnimation to onClick method.

    image

    thank you.

    I don't know if it will cause bug. I have test it and haven't found bug yet.

    bug 
    opened by com314159 2
  • How to hide the image button and create custom button?

    How to hide the image button and create custom button?

    Hi, I want to remove the image button and add my custom button but it will crash, so I tried to hide the image button but this code is not working android: visibility="gone" . the image button will display even I added this code. So how to hide it?

    My custom button just displays a 'Read More' text and no image.

    Or I have to create 'read more' image for it? any other solution?

    <com.ms.square.android.expandabletextview.ExpandableTextView xmlns:android="http://schemas.android.com/apk/res/android"
                        xmlns:expandableTextView="http://schemas.android.com/apk/res-auto"
                        android:id="@+id/expand_text_view"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="30dp"
                        expandableTextView:animDuration="200">
    
                        <TextView
                            android:id="@id/expandable_text"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:textColor="#666666"
                            android:textSize="16sp" />
    
                        <ImageButton
                            android:id="@id/expand_collapse"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="left|bottom"
                            android:background="@android:color/transparent"
                            android:visibility="gone"
                            android:padding="16dp"
                            android:text="Read More"
                            android:textColor="@color/colorSweat"/>
                    </com.ms.square.android.expandabletextview.ExpandableTextView>
    
    opened by tanwanjern 1
  • Support for Android X

    Support for Android X

    Hi, Can you please upgrade your project to eliminate Android v7 support library and replace it with Android X as We need this to make sure our app is supporting Androd X completely. Looking forward to it.

    opened by sudhanshu79 0
  • Solution for

    Solution for "Text is not completely shown in Expanded State (Height Calculation Issue)"

    Incase of large text, the text isn't shown completely in expanded state. This is still a bug in the latest version of this repository as of today and needs to be fixed in the next release @Manabu-GT . For now, following is the solution explained clearly.

    SOLUTION

    In ExpandableTextView class, in the onMeasure method: Cut the line

           mTextHeightWithMaxLines = getRealTextViewHeight(mTv);
    

    and paste it right below this line

            super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    

    Or for ease, you can directly replace your onMeasure method with the method below.

        @Override
        protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
            // If no change, measure and return
            if (!mRelayout || getVisibility() == View.GONE) {
                super.onMeasure(widthMeasureSpec, heightMeasureSpec);
                return;
            }
            mRelayout = false;
    
            // Setup with optimistic case
            // i.e. Everything fits. No button needed
            mToggleView.setVisibility(View.GONE);
            mTv.setMaxLines(Integer.MAX_VALUE);
    
            // Measure
            super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    
            //--- Previously the mTextHeightWithMaxLines was initialized here ---//       
    
            // If the text fits in collapsed mode, we are done.
            if (mTv.getLineCount() <= mMaxCollapsedLines) {
                return;
            }
    
            // Doesn't fit in collapsed mode. Collapse text view as needed. Show
            // button.
            if (mCollapsed) {
                mTv.setMaxLines(mMaxCollapsedLines);
            }
            mToggleView.setVisibility(View.VISIBLE);
    
            // Re-measure with new setup
            super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    
           mTextHeightWithMaxLines = getRealTextViewHeight(mTv);
    
            if (mCollapsed) {
                // Gets the margin between the TextView's bottom and the ViewGroup's bottom
                mTv.post(new Runnable() {
                    @Override
                    public void run() {
                        mMarginBetweenTxtAndBottom = getHeight() - mTv.getHeight();
                    }
                });
                // Saves the collapsed height of this ViewGroup
                mCollapsedHeight = getMeasuredHeight();
            }
        } 
    

    This was also discussed in this issue here #5 but the solution wasn't explained clearly.

    opened by harismuneer 2
  • MaxLines on expanded TextView?

    MaxLines on expanded TextView?

    I want to limit max lines when textview is expanded. But it seems it's not working?

    <com.ms.square.android.expandabletextview.ExpandableTextView
                    xmlns:expandableTextView="http://schemas.android.com/apk/res-auto"
                    android:id="@+id/post_content"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:background="@color/news_title_bg_color"
                    android:paddingStart="4dp"
                    android:paddingEnd="4dp"
                    expandableTextView:maxCollapsedLines="2"
                    expandableTextView:animDuration="200">
                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:gravity="center_vertical"
                        android:orientation="horizontal">
                        <TextView
                            android:id="@id/expandable_text"
                            android:layout_width="0dp"
                            android:layout_weight="1"
                            android:maxLines="5"
                            android:layout_height="wrap_content"
                            android:textSize="12sp"
                            android:textColor="@color/colorDarkWhiteText"
                            android:textStyle="bold"/>
                        <ImageButton
                            android:id="@id/expand_collapse"
                            android:layout_width="20dp"
                            android:layout_height="20dp"
                            android:padding="2dp"
                            android:tint="@color/colorDarkWhiteText"
                            android:layout_gravity="center_vertical"
                            android:background="@android:color/transparent"/>
                    </LinearLayout>
                </com.ms.square.android.expandabletextview.ExpandableTextView>
    
    opened by c0dehunter 0
  • Not Compatible with AndroidX (Empty screen)

    Not Compatible with AndroidX (Empty screen)

    The following sample code provided doesn't output anything on the screen or the studio live preview.

    Versions:

    • expandableTextView:0.1.4
    • gradle:3.5.0
    <com.ms.square.android.expandabletextview.ExpandableTextView xmlns:expandableTextView="http://schemas.android.com/apk/res-auto"
                    android:id="@+id/expand_text_view"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    expandableTextView:maxCollapsedLines="4"
                    expandableTextView:animDuration="200">
    
                    <TextView
                        android:id="@id/expandable_text"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="10dp"
                        android:layout_marginRight="10dp"
                        android:textSize="16sp"
                        android:text="asdkjbaskjda\nsadasdasdas\nasdasdasdasd\nasdasdasdas\nasdas\nadsas\nadsas"
                        android:textColor="#666666" />
    
                    <ImageButton
                        android:id="@id/expand_collapse"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:padding="16dp"
                        android:layout_gravity="end|bottom"
                        android:background="@android:color/transparent" />
                </com.ms.square.android.expandabletextview.ExpandableTextView>
    
    opened by geekykant 1
Releases(v0.1.3)
Owner
Manabu S.
Mobile & Web Engineer / Former Project Manager
Manabu S.
Androids EditText that animates the typed text. EditText is extended to create AnimatedEditText and a PinEntryEditText.

AnimatedEditText for Android This repository contains AnimatedEditText and TextDrawable all of which extend the behaviour of EditText and implement fe

Ali Muzaffar 439 Nov 29, 2022
A simple and flexible Checked TextView or Checkable TextView

CheckableTextView Checkable TextView [KOTLIN] ⚡ A simple and flexible Checked TextView or Checkable TextView written in Kotlin ⚡ What's New Animation

null 110 Nov 20, 2022
Mentions-TextView - Make Mentions and hashtags clickable in Textview

Mentions Textview Custome Textview with Mentions and hashtags being clickable. D

null 2 Jan 9, 2022
A library to show emoji in TextView, EditText (like WhatsApp) for Android

Discontinued This projected is discontinued. Please consider using other alternative, i.e EmojiCompat. Contact me if you want to continue working on a

Hieu Rocker 3.6k Jan 5, 2023
A TextView that simulates the effect from the app Secret where the characters fade in/out at different speeds.

SecretTextView A TextView that simulates the effect from the app Secret where the characters fade in/out at different speeds. How To Use Use it just l

Matt Kula 611 Nov 7, 2022
Animation effects to text, not really textview

HTextView Animation effects with custom font support to TextView see iOS Effects see Flutter Effects Screenshot type gif Scale Evaporate Fall Line Typ

hanks 5.5k Jan 5, 2023
A TextView that automatically resizes text to fit perfectly within its bounds.

AutoFitTextView A TextView that automatically resizes text to fit perfectly within its bounds. Usage dependencies { compile 'me.grantland:autofitt

Grantland Chew 4.2k Jan 1, 2023
Android experiment showing a sinking TextView

Titanic is an Android experiment reproducing this effect.

Romain Piel 1.8k Dec 15, 2022
A Custom TextView with trim text

ReadMoreTextView A Custom TextView with trim text Download To add the ReadMoreTextView library to your Android Studio project, simply add the followin

Borja B. 1.7k Dec 29, 2022
Advanced Android TextView

Advanced Android TextView Companion app for my Advanced Android TextView talk, demostrating: Animated CompoundDrawable Text shadow Custom font Non-bre

Chiu-Ki Chan 1.2k Dec 9, 2022
AutoLinkTextView is TextView that supports Hashtags (#), Mentions (@) , URLs (http://), Phone and Email automatically detecting and ability to handle clicks.

AutoLinkTextView Deprecated Please use the new version of AutoLinkTextView AutoLinkTextView is TextView that supports Hashtags (#), Mentions (@) , URL

Arman 1.1k Nov 23, 2022
Implementation of a TextView and all its direct/indirect subclasses with native support for the Roboto fonts, includes the brand new Roboto Slab fonts.

Android-RobotoTextView Implementation of a TextView and all its direct/indirect subclasses with native support for the Roboto fonts, includes the bran

Evgeny Shishkin 782 Nov 12, 2022
This is based on an open source autosizing textview for Android.

SizeAdjustingTextView This is based on an open source autosizing textview for Android I found a few weeks ago. The initial approach didn't resize mult

Elliott Chenger 255 Dec 29, 2022
An extension of Android's TextView, EditText and Button that let's you use the font of your choice

AnyTextView (deprecated) Note: AnyTextView is no longer being maintained. I recommend replacing AnyTextView with the Calligraphy library instead. Frus

Hans Petter Eide 165 Nov 11, 2022
Form validation and feedback library for Android. Provides .setText for more than just TextView and EditText widgets. Provides easy means to validate with dependencies.

android-formidable-validation Form validation and feedback library for Android. Provides .setText for more than just TextView and EditText widgets. Pr

Linden 147 Nov 20, 2022
Simple way to create linked text, such as @username or #hashtag, in Android TextView and EditText

Simple Linkable Text Simple way to create link text, such as @username or #hashtag, in Android TextView and EditText Installation Gradle Add dependenc

Aditya Pradana Sugiarto 76 Nov 29, 2022
Customized and Expandable TextView

Customized and Expandable TextView Simple library to change the Textview as rectangle, circle and square shapes by adding one line of code in xml file

Raja Gopal 62 Sep 22, 2022
Lightweight android library for highlighting sections of a textview, with optional callbacks.

Linker Lightweight android library for highlighting Strings inside of a textview (ignoring case), with optional callbacks. Language: Java MinSDK: 17 J

Josh Gainey 35 Apr 30, 2022
TextView to display simple HTML

Project stopped This project has been stopped. 4.0 is the last release. Feel free to fork this project and take over maintaining. HtmlTextView for And

Sufficiently Secure 2.5k Dec 28, 2022