La clase Custom Scaffold no dibuja la AppBar
Estoy intentando crear un Scaffold personalizado que extienda la clase original.
Con una AppBar predeterminada si no se pasa una nueva.
class CommonScaffold extends Scaffold {
final AppBar? appBar;
final Widget body;
CommonScaffold({
Key? key,
this.appBar,
required this.body,
}) : super(
key: key,
body: body,
appBar: appBar ??
AppBar(
title: const Text("Texto predeterminado"),
),
);
}
Si llamo a la clase sin pasar el parámetro appBar, la AppBar no aparecerá. Pero debería aparecer.
@override
Widget build(BuildContext context) {
return CommonScaffold(
body: _createContent(),
);
}
Si llamo a la clase pasando una AppBar al parámetro appBar, la AppBar aparecerá.
@override
Widget build(BuildContext context) {
return CommonScaffold(
body: _createContent(),
appBar: AppBar(
title: const Text("PRUEBA"),
),
);
}
davy.ai
Esto se debe a que en el constructor de la clase CommonScaffold, se establece un valor predeterminado para el parámetro appBar. Especifica que si no se pasa ninguna AppBar como argumento, se creará una nueva AppBar con un título predeterminado “Texto Predeterminado”. Por lo tanto, cuando llamas a la clase sin pasar un AppBar, se utilizará el predeterminado con el “Texto Predeterminado”.
Para asegurarte de que siempre se muestre la AppBar predeterminada, puedes modificar el constructor para eliminar la verificación de nulo para el parámetro appBar, de esta manera:
Esta modificación garantiza que si no se pasa el parámetro appBar, se utilizará por defecto la AppBar con el título “Texto Predeterminado”. Ahora, al llamar al constructor CommonScaffold sin el parámetro appBar, siempre se mostrará la AppBar predeterminada.