Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Show trailing icon after text input from user in TextField Jetpack Compose

I am trying to:

  1. make the trailingIcon of TextField composable visible only if the user enters some text other than white spaces.
  2. Later when the user clicks the trailingIcon the text in the TextField should get cleared and the trailingIcon should disappear.
  3. Again when the user enters a text other than space, the trailingIcon should appear and enable this text clearing feature.

and so on…

I tried searching for solutions to this problem but mostly they were focused on "visible trailingIcons" and not what I was trying to implement.

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

>Solution :

Depending on text state you can specify null or actual view for trailingIcon parameter:

var text by remember { mutableStateOf("") }
val trailingIconView = @Composable {
    IconButton(
        onClick = {
            text = ""
        },
    ) {
        Icon(
            Icons.Default.Clear,
            contentDescription = "",
            tint = Color.Black
        )
    }
}
TextField(
    value = text,
    onValueChange = { text = it },
    trailingIcon = if (text.isNotBlank()) trailingIconView else null,
)
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading