fix(ui): unify scroll and improve playback switching
This commit is contained in:
@@ -67,7 +67,8 @@ class _PantallaBuscarState extends State<PantallaBuscar> {
|
||||
final estado = context.watch<EstadoRadio>();
|
||||
final theme = Theme.of(context);
|
||||
|
||||
return Column(
|
||||
return ListView(
|
||||
padding: const EdgeInsets.fromLTRB(0, 0, 0, 124),
|
||||
children: [
|
||||
PluriScreenHeader(
|
||||
title: 'Buscar senal',
|
||||
@@ -125,7 +126,7 @@ class _PantallaBuscarState extends State<PantallaBuscar> {
|
||||
_buscar();
|
||||
},
|
||||
),
|
||||
Expanded(child: _resultados(estado, theme)),
|
||||
_resultados(estado, theme),
|
||||
],
|
||||
);
|
||||
}
|
||||
@@ -144,7 +145,7 @@ class _PantallaBuscarState extends State<PantallaBuscar> {
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
pais == null ? 'Emisoras cercanas' : 'Emisoras cercanas ? $pais',
|
||||
pais == null ? 'Emisoras cercanas' : 'Emisoras cercanas - $pais',
|
||||
style: theme.textTheme.labelLarge?.copyWith(
|
||||
fontWeight: FontWeight.w900,
|
||||
),
|
||||
@@ -247,7 +248,10 @@ class _PantallaBuscarState extends State<PantallaBuscar> {
|
||||
|
||||
Widget _resultados(EstadoRadio estado, ThemeData theme) {
|
||||
if (estado.cargandoBusqueda) {
|
||||
return const Center(child: CircularProgressIndicator());
|
||||
return const SizedBox(
|
||||
height: 220,
|
||||
child: Center(child: CircularProgressIndicator()),
|
||||
);
|
||||
}
|
||||
|
||||
final resultados = estado.resultadosBusqueda;
|
||||
@@ -257,18 +261,24 @@ class _PantallaBuscarState extends State<PantallaBuscar> {
|
||||
_controller.text.isEmpty &&
|
||||
_paisSeleccionado == null &&
|
||||
_idiomaSeleccionado == null;
|
||||
return PluriEmptyState(
|
||||
glyph: PluriIconGlyph.search,
|
||||
title: sinFiltros ? 'Busca una emisora' : 'Sin resultados',
|
||||
subtitle: sinFiltros
|
||||
? 'Usa la barra superior o los chips para descubrir senales de todo el mundo.'
|
||||
: 'Proba quitar filtros o escribir otro nombre para encontrar una senal activa.',
|
||||
return SizedBox(
|
||||
height: 260,
|
||||
child: PluriEmptyState(
|
||||
glyph: PluriIconGlyph.search,
|
||||
title: sinFiltros ? 'Busca una emisora' : 'Sin resultados',
|
||||
subtitle: sinFiltros
|
||||
? 'Usa la barra superior o los chips para descubrir senales de todo el mundo.'
|
||||
: 'Proba quitar filtros o escribir otro nombre para encontrar una senal activa.',
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
final total = resultados.length + (estado.hayMasBusqueda ? 1 : 0);
|
||||
return ListView.separated(
|
||||
padding: const EdgeInsets.fromLTRB(16, 16, 16, 120),
|
||||
itemCount: resultados.length + (estado.hayMasBusqueda ? 1 : 0),
|
||||
shrinkWrap: true,
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
padding: const EdgeInsets.fromLTRB(16, 16, 16, 16),
|
||||
itemCount: total,
|
||||
separatorBuilder: (_, __) => const SizedBox(height: 10),
|
||||
itemBuilder: (context, i) {
|
||||
if (i >= resultados.length) {
|
||||
|
||||
Reference in New Issue
Block a user