Le défi de créer des champs de saisie efficaces et esthétiques dans les applications Android est crucial.
Sans un outil adapté, les champs de texte peuvent être peu intuitifs, entraînant une frustration utilisateur et une mauvaise expérience.
Jetpack Compose propose TextField, un composable puissant pour faciliter la création de champs de saisie interactifs et esthétiques.
Créez des interfaces modernes et réactives avec JetPack Compose!
Qu'est-ce que Jetpack Compose TextField?
TextField Composable Android: Présentation
Jetpack Compose est un puissant framework pour la création d’interfaces utilisateur en Android. Parmi les composables essentiels, le composable TextField joue un rôle crucial dans la saisie de texte. Il permet aux utilisateurs de rentrer des données et est souvent utilisé pour des formulaires ou des champs de saisie. Ce chapitre explique en détail l’utilisation du composable TextField, ses paramètres, ainsi que son cousin OutlinedTextField, en fournissant des exemples de code pratiques et des conseils pour une utilisation efficace.
Configurer les Paramètres TextField Jetpack
Définition et Utilisation Basique
Le composable TextField est utilisé pour créer des champs de texte interactifs dans une application. Contrairement au composable Text, TextField permet aux utilisateurs d’entrer et de modifier du texte. Voici un exemple simple d’utilisation du composable TextField :
@Composable
fun BasicTextField() {
var text by remember { mutableStateOf("Initial Text") }
TextField(
value = text,
onValueChange = { newText -> text = newText },
label = { Text("Label") },
placeholder = { Text("Placeholder") }
)
}
Résultat obtenu après exécution du code :
Dans cet exemple, TextField est initialisé avec un texte et est configuré pour mettre à jour ce texte lorsque l’utilisateur entre de nouvelles données.
Paramètres Obligatoires
Pour utiliser TextField, vous devez fournir deux paramètres principaux :
- value :Le texte actuellement affiché dans le champ.
- onValueChange :Une fonction callback qui est appelée chaque fois que l’utilisateur modifie le texte. Cette fonction est cruciale pour mettre à jour l’état du composable et permettre sa recomposition.
Voici un exemple de configuration minimale :
@Composable
fun TextFieldExample() {
var text by remember { mutableStateOf("") }
TextField(
value = text,
onValueChange = { newValue -> text = newValue })}
Gestion de l’État
Le TextField utilise un état pour suivre et refléter les changements du texte. Vous devez utiliser remember et mutableStateOf pour définir cet état. Si le TextField ne dépend pas d’un état mutable, il ne sera pas mis à jour correctement lorsque l’utilisateur saisit du texte.
@Composable
fun StatefulTextField() {
var text by remember { mutableStateOf("") }
TextField(
value = text,
onValueChange = { newValue -> text = newValue })}}
OutlinedTextField: Utilisation Avancée
Label et Placeholder
- Label :Texte affiché au-dessus du champ lorsque l’utilisateur commence à saisir du texte.
- Placeholder :Texte affiché dans le champ avant que l’utilisateur commence à saisir.
@Composable
fun LabeledTextField() {
var text by remember { mutableStateOf("") }
TextField(
value = text,
onValueChange = { newText -> text = newText },
label = { Text("Enter your name") },
placeholder = { Text("Name") } )}
Résultat obtenu après exécution du code :
Options du Clavier
Vous pouvez configurer le type de clavier à afficher en fonction de la nature du texte attendu (e.g., texte, nombres, email).
@Composable
fun KeyboardOptionsTextField() {
var text by remember { mutableStateOf("") }
TextField(
value = text,
onValueChange = { newText -> text = newText },
keyboardOptions = KeyboardOptions.Default.copy(
keyboardType = KeyboardType.Email
)
)
}
Élément | Description |
---|---|
Nom de la fonction | KeyboardOptionsTextField : Fonction composable affichant un champ de texte avec options de clavier configurées. |
Annotation | @Composable : Indique que la fonction crée une interface utilisateur réactive. |
État local | var text by remember { mutableStateOf(« ») } : État mutable pour gérer le texte du champ. |
Composant utilisé | TextField : Composant affichant un champ de saisie. |
Valeur du champ | value = text : Le texte affiché dans le champ de saisie. |
Gestion des changements | onValueChange = { newText -> text = newText } : Met à jour l’état lorsque le texte change. |
Options de clavier | keyboardOptions = KeyboardOptions.Default.copy(keyboardType = KeyboardType.Email) : Configure le clavier pour les adresses email. |
Modifieurs et Couleurs
Les modifieurs permettent d’ajuster la présentation du TextField, comme ajouter des marges ou modifier la couleur de fond.
@Composable
fun CustomizedTextField() {
var text by remember { mutableStateOf("") }
TextField(
value = text,
onValueChange = { newText -> text = newText },
modifier = Modifier
.padding(16.dp)
.background(Color.LightGray)
)}
Résultat obtenu après exécution du code :
Exemples Pratiques de TextField Compose
Présentation de OutlinedTextField
OutlinedTextField est une version améliorée de TextField avec une bordure autour du champ de texte, offrant un aspect plus moderne et visuellement distinct.
@Composable
fun OutlinedTextFieldExample() {
var text by remember { mutableStateOf("")
}
OutlinedTextField(
value = text,
onValueChange = { newText -> text = newText },
label = { Text("Label") },
placeholder = { Text("Placeholder")
}
)
}
Résultat obtenu après exécution du code :
Ajout d’une Icône
Vous pouvez ajouter une icône au début ou à la fin du champ de texte en utilisant les paramètres leadingIcon ou trailingIcon.
@Composable
fun IconOutlinedTextField() {
var text by remember { mutableStateOf("") }
OutlinedTextField(
value = text,
onValueChange = { newText -> text = newText },
label = { Text("Label") },
leadingIcon = {
Icon(imageVector = Icons.Default.Edit, contentDescription = "Edit icon")
}
)
}
Résultat obtenu après exécution du code :
Conclusion sur Jetpack Compose TextField
Application Complète
Voici un exemple complet montrant comment utiliser TextField et OutlinedTextField dans une application de gestion d’articles :
@Composable
fun ArticleScreen() {
var title by remember { mutableStateOf("") }
var description by remember { mutableStateOf("") }
Column(modifier = Modifier.padding(16.dp)) {
TextField(
value = title,
onValueChange = { newTitle -> title = newTitle },
label = { Text("Article Title") },
placeholder = { Text("Enter the title") }
)
Spacer(modifier = Modifier.height(16.dp))
OutlinedTextField(
value = description,
onValueChange = { newDescription -> description = newDescription },
label = { Text("Article Description") },
placeholder = { Text("Enter the description") },
leadingIcon = {
Icon(imageVector = Icons.Default.Description, contentDescription = "Description icon")
}
) }}
Résultat obtenu après exécution du code :
Voici l’explication du code :
Élément | Description |
---|---|
Nom de la fonction | ArticleScreen : Composable pour afficher un formulaire. |
État local | title et description : Variables pour gérer le texte des champs. |
Disposition | Column avec Modifier.padding(16.dp) : Disposition verticale avec espacement. |
Champ de texte (Titre) | TextField : Champ de saisie pour le titre avec étiquette et texte de substitution. |
Champ de texte (Description) | OutlinedTextField : Champ de saisie pour la description avec icône, étiquette et texte de substitution. |
Élément
Description
Nom de la fonction
ArticleScreen : Composable pour afficher un formulaire.
État local
title et description : Variables pour gérer le texte des champs.
Disposition
Column avec Modifier.padding(16.dp) : Disposition verticale avec espacement.
Champ de texte (Titre)
TextField : Champ de saisie pour le titre avec étiquette et texte de substitution.
Champ de texte (Description)
OutlinedTextField : Champ de saisie pour la description avec icône, étiquette et texte de substitution.
Prévisualisation et Tests
Utilisez l’annotation @Preview pour prévisualiser vos composables dans Android Studio et tester leur apparence et comportement.
@Preview(showBackground = true)
@Composable
fun PreviewArticleScreen() {
ArticleScreen()
}
Conclusion
Le composable TextField est un outil puissant pour la création de champs de saisie dans Jetpack Compose. En comprenant ses paramètres obligatoires et optionnels, ainsi que les variations comme OutlinedTextField, vous pouvez créer des interfaces utilisateur interactives et esthétiques.
Formez-vous gratuitement avec Alphorm !
Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.
FAQ
Comment utiliser TextField dans Jetpack Compose ?
Quels sont les paramètres avancés de TextField ?
Quelle est la différence entre TextField et OutlinedTextField ?
Comment gérer l'état dans un TextField Jetpack Compose ?
Comment personnaliser l'apparence d'un TextField ?
Conclusion
Le TextField est un composant clé pour créer des champs de saisie efficaces dans Jetpack Compose. Quel aspect des TextFields souhaitez-vous explorer davantage pour enrichir vos interfaces Android ?