Я бы хотел использовать SliverAppBar в NestedScrollView в обычном приложении Scaffold.Я также хотел бы иметь минимальную высоту панели приложения, когда пользователь прокручивает страницу вниз.
Я не могу понять, как использовать виджет PreferredSize или любое другое решение, найденное в Интернете, например this .
Вот мое текущее упрощенное решение:
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(primarySwatch: Colors.blue, fontFamily: 'Oswald'),
home: SliverHome(),
);
}
}
class SliverHome extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
child: testHome(),
);
}
Widget testHome() {
return Scaffold(
body: NestedScrollView(
headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) {
return <Widget>[
SliverAppBar( // this is where I would like to set some minimum constraint
expandedHeight: 300,
floating: false,
pinned: true,
flexibleSpace: Container(
padding: EdgeInsets.all(10),
height: 340,
width: double.infinity,
child: Column(
mainAxisAlignment: MainAxisAlignment.end,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Container(
height: 40,
),
Container(
height: 60,
),
Expanded(child: Container()),
Text('TEST'),
],
),
decoration: BoxDecoration(
image: DecorationImage(
image: NetworkImage('https://picsum.photos/400/400'),
fit: BoxFit.cover)),
),
)
];
},
body: Container(),
),
floatingActionButton: FloatingActionButton(
onPressed: () => {},
tooltip: '+',
child: Icon(Icons.accessibility_new),
),
);
}
}
Я бы хотел остановить сокращение панели приложения где-нибудь около 60 dp
![screenshot](https://i.imgur.com/yVXxsXv.png)