Fixed issue #278 by making list scrollable under search bar (#572)

pull/577/head
kjain333 5 years ago committed by GitHub
parent ed73e7a310
commit 134b64bcad
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -61,12 +61,23 @@ class _SearchScreenState extends State<SearchScreen> {
} }
return ListView.builder( return ListView.builder(
itemCount: veggies.length, itemCount: veggies.length + 1,
itemBuilder: (context, i) { itemBuilder: (context, i) {
if (i == 0) {
return Visibility(
//an invisible search box at the starting of the list so that overlay search box doesn't cover content
child: _createSearchBox(),
visible: false,
maintainSize: true,
maintainAnimation: true,
maintainState: true,
);
} else {
return Padding( return Padding(
padding: EdgeInsets.only(left: 16, right: 16, bottom: 24), padding: EdgeInsets.only(left: 16, right: 16, bottom: 24),
child: VeggieHeadline(veggies[i]), child: VeggieHeadline(veggies[i - 1]),
); );
}
}, },
); );
} }
@ -79,12 +90,10 @@ class _SearchScreenState extends State<SearchScreen> {
builder: (context) { builder: (context) {
return SafeArea( return SafeArea(
bottom: false, bottom: false,
child: Column( child: Stack(
children: [ children: [
_buildSearchResults(model.searchVeggies(terms)),
_createSearchBox(), _createSearchBox(),
Expanded(
child: _buildSearchResults(model.searchVeggies(terms)),
),
], ],
), ),
); );

@ -2,6 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
import 'dart:ui';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/widgets.dart'; import 'package:flutter/widgets.dart';
import 'package:veggieseasons/styles.dart'; import 'package:veggieseasons/styles.dart';
@ -19,7 +21,10 @@ class SearchBar extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
final themeData = CupertinoTheme.of(context); final themeData = CupertinoTheme.of(context);
return DecoratedBox( return ClipRRect(
borderRadius: BorderRadius.circular(10),
child: BackdropFilter(
child: DecoratedBox(
decoration: BoxDecoration( decoration: BoxDecoration(
color: Styles.searchBackground(themeData), color: Styles.searchBackground(themeData),
borderRadius: BorderRadius.circular(10), borderRadius: BorderRadius.circular(10),
@ -59,6 +64,9 @@ class SearchBar extends StatelessWidget {
], ],
), ),
), ),
),
filter: ImageFilter.blur(sigmaY: 5, sigmaX: 5),
),
); );
} }
} }

Loading…
Cancel
Save