CheckableTextView
Checkable TextView [KOTLIN]
⚡
A simple and flexible Checked TextView or Checkable TextView written in Kotlin
⚡
What's New
Animation | Demo |
---|---|
Normal |
|
Custom Duration |
Sorry for flicker in slow motion video demo . You know android studio screen recorder sucks sometimes
😅
Custom Interpolators
custom interpolator support added
Interpolator | Demo |
---|---|
BounceInterpolator |
|
AnticipateOvershootInterpolator |
Installation
- Add it in your root build.gradle at the end of repositories:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
- Add the dependency in app gradle
dependencies {
implementation 'com.github.JDevZone:CheckableTextView:{latest_version}'
}
Basic usage
<com.devzone.checkabletextview.CheckableTextView
app:ctv_TextStyle="@style/TextAppearance.General"
app:ctv_IconTint="@color/colorAccent"
app:ctv_IconChecked="true"
app:ctv_Icon="@drawable/ic_cancel_custom_vector"
app:ctv_Text="@string/app_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
Change State Programatically
You can change checked state as follows :
checkedTV.setChecked(isChecked)
Default value shouldNotifyListeners
is false
or
checkedTV.setChecked(isChecked,shouldNotifyListeners)
First Boolean parameter isChecked
sets the current state Second Boolean parameter shouldNotifyListeners
determines if onCheckChange
method should be called or not.
Get Current State
checkedTV.isChecked()
No Fancy enums, Just true for checked state and false for unchecked is returned
Listen State Changes
You can listen to state changes by registering a listener like as follows :
checkedTV.setOnCheckChangeListener()
and get callback in implemented method :
override fun onCheckChange(view: View, isChecked: Boolean) {
// checkedTV returned as view
// isChecked current state of the view
}
Set Custom Interpolator
checkedTV.setAnimInterpolator(BounceInterpolator())
Experimental
checkedTV.setClickEnabled(isClickable: Boolean)
Pass isClickable
true for enable and false for disable clicks
currently restricted to
RestrictTo.Scope.LIBRARY
you can use it simply Suppressing Lint Warnings (if have any) as@SuppressLint("RestrictedApi")
Customisation
Here are the attributes you can specify through XML or related setters:
ctv_Text
- Set text.ctv_TextSize
- Set text size.ctv_TextColor
- Set text color.ctv_TextStyle
- Set text style.ctv_Icon
- Set custom icon.ctv_IconTint
- Set icon tint.ctv_IconChecked
- Set TextView (CheckableTextView
) state checked.ctv_TextGravity
- Set text gravity.ctv_AnimType
- Set check animation type currently three available (scale
,translate
andfall_down
).ctv_AnimDuration
- Set duration for check animation.ctv_AnimFirstTime
- AnimateCheckableTextView
for very first time.
📄
License
Checkable TextView is released under the MIT license. See LICENSE for details.