Mostrar y ocultar un widget
Parte de la sección Cómo hacerla interactiva del Journey de Flutter de Coddy. Lección 20 de 34.
Para mostrar un widget solo a veces, pon un if delante, justo dentro de la lista de children:
Column(
children: [
const Text('Question'),
if (_showHint) const Text('A hint'),
],
)Cuando _showHint es false, la pista no está oculta: no está en la lista en absoluto, y los widgets que vienen después suben para ocupar el espacio. Cuando es true, la pista está ahí. Este if no lleva llaves ni else: es la versión de if para listas, como el for que usaste para crear una lista de widgets.
Un botón que muestra y oculta algo suele invertir un valor booleano con ! y cambiar su propia etiqueta con ? :.
Desafío
FácilLa respuesta Paris siempre está en pantalla. Muéstrala solo cuando _showAnswer sea true. El botón ya cambia el valor de _showAnswer; haz que su etiqueta diga Show answer cuando la respuesta esté oculta y Hide answer cuando esté visible.
Pruébalo tú mismo
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: const HomePage(),
);
}
}
class HomePage extends StatefulWidget {
const HomePage({super.key});
@override
State<HomePage> createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
bool _showAnswer = false;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('Quiz')),
body: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
const Text('What is the capital of France?', style: TextStyle(fontSize: 20)),
const Text('Paris', style: TextStyle(fontSize: 32)),
const SizedBox(height: 16),
ElevatedButton(
onPressed: () {
setState(() {
_showAnswer = !_showAnswer;
});
},
child: const Text('Show answer'),
),
],
),
),
);
}
}
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Cómo hacerla interactiva
1Botones
Tu primer botónImprimir en la consolaBotones de texto y contornoBotones con iconosEl botón de acción flotante7Interruptores y deslizadores
Encender y apagar con un interruptorMarcar una casillaElegir un valor con un deslizador5Decisiones
bool y el operador ? :Decisiones con if y elseAnd, Or y Not en DartMostrar y ocultar un widgetAtenuar un botónPractica por tu cuenta: Compilador de Flutter online