ToggleEditTextView

Easily switch between EditText and TextView seamlessly.

Grab via Gradle :coffee:

dependencies {
    implementation 'com.camerash:toggleedittextview:0.1.1'
}

Usage :computer:

ToggleEditTextView

In your layout:

<com.camerash.toggleedittextview.ToggleEditTextView
        android:id="@+id/tetv"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/name"
        android:maxLines="1"
        app:tetv_textViewColor="@color/colorPrimary"
        app:tetv_editTextViewColor="@color/colorPrimaryDark"
        app:tetv_editTextBottomLineColor="@color/colorAccent" />

Available properties:

  • android:textSize
  • android:hint
  • android:inputType
  • android:minLines
  • android:maxLines
  • app:tetv_editing - Initial state of ToggleEditTextView
  • app:tetv_textViewColor - Text color of TextView
  • app:tetv_editTextViewColor - Text color of EditText
  • app:tetv_editTextBottomLineColor - Bottom line's color of EditText

Available methods:

  • set/getEditing() - Control editing state of ToggleEditTextView
  • set/getText() - Set/Get text of ToggleEditTextView
  • set/getHint() - Set/Get hint of ToggleEditTextView
  • set/getTextSize() - Set/Get text size of ToggleEditTextView
  • set/getTextViewColor() - Set/Get color of text of the TextView in ToggleEditTextView
  • set/getEditTextColor() - Set/Get color of text of the EditText in ToggleEditTextView
  • setEditTextBottomLineColor(Int) - Set color of bottom line of the EditText in ToggleEditTextView
  • set/getEditTextEnabled() - Set/Get state of the EditText in ToggleEditTextView
  • set/getInputType() - Set/Get inputType of the EditText in ToggleEditTextView
  • setMinLines() - Set minLines of ToggleEditTextView
  • setMaxLines() - Set maxLines of ToggleEditTextView

ToggleEditButton - Button controller of ToggleEditTextViews

In your layout:

<com.camerash.toggleedittextview.ToggleEditButton
        android:id="@+id/toggleEditButton"
        android:layout_width="36dp"
        android:layout_height="36dp"
        app:teb_animationOffset="100"
        app:teb_edit="false"
        app:teb_tint="@color/colorAccent" />

Available properties:

  • app:teb_edit - Initial state of ToggleEditButton (Overrides the state of the controlling ToggleEditTextViews)
  • app:teb_tint - Tint color of the icon
  • app:teb_animationOffset - Offset duration of fading animation between each ToggleEditTextView controlled by the ToggleEditButton

Available methods:

  • bind(vararg ToggleEditTextView) - Bind multiple ToggleEditTextViews to the button
  • unbind(ToggleEditTextView) - Unbind ToggleEditTextView from the button
  • unbindAll() - Unbind all ToggleEditTextViews from the button
  • set/getAnimationOffset() - Set/Get the Offset duration of fading animation between each ToggleEditTextView controlled by the ToggleEditButton
  • setOnClickListener(OnClickListener) - Works the same as a good o' button

Common usage :bell:

Kotlin:

val tetv1 = findViewById<ToggleEditTextView>(R.id.tetv1)
val tetv2 = findViewById<ToggleEditTextView>(R.id.tetv2)
val teb = findViewById<ToggleEditButton>(R.id.teb)
teb.bind(tetv1, tetv2)

Java:

ToggleEditTextView tetv1 = findViewById(R.id.tetv1);
ToggleEditTextView tetv2 = findViewById(R.id.tetv2);
ToggleEditButton teb = findViewById(R.id.teb);
teb.bind(tetv1, tetv2);

Sample :closed_book:

Sample app is under /sample directory :tada:

GitHub