如何制作按钮在CustomScrollView底部固定为“粘滞”
如何实现像截图一样 https://i.stack.imgur.com/RDCn9.png
答案 0 :(得分:3)
一种实现方式-使用-BottomNavigationBar
@override
Widget build(BuildContext context) {
return Scaffold(
body: CustomScrollView(
slivers: <Widget>\[
SliverAppBar(
title: Text('Sliver App Bar'),
expandedHeight: 125.0,
),
SliverList(
delegate: SliverChildBuilderDelegate((context, int) {
return Text('Boo');
}, childCount: 65)),
SliverFillRemaining(
child: Text('Foo Text'),
),
\],
),
bottomNavigationBar: Padding(
padding: EdgeInsets.all(8.0),
child: RaisedButton(
onPressed: () {},
color: Colors.blue,
textColor: Colors.white,
child: Text('Fixed Button'),
),
),
);
}][1]][1]
输出:
答案 1 :(得分:1)
您可以使用floatingActionButton
和floatingActionButtonLocation
考试:
import 'package:flutter/material.dart';
void main() => runApp(new MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
home: new MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key key}) : super(key: key);
@override
_MyHomePageState createState() => new _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return new Scaffold(
floatingActionButton: FloatingActionButton.extended(
onPressed: () {},
isExtended: true,
materialTapTargetSize: MaterialTapTargetSize.shrinkWrap,
icon: Icon(Icons.supervised_user_circle),
label: Text('Fixed Button'),
),
floatingActionButtonLocation: FloatingActionButtonLocation.centerFloat,
body: CustomScrollView(
slivers: <Widget>[
const SliverAppBar(
pinned: true,
expandedHeight: 250.0,
flexibleSpace: FlexibleSpaceBar(
title: Text('Demo'),
),
),
SliverGrid(
gridDelegate: SliverGridDelegateWithMaxCrossAxisExtent(
maxCrossAxisExtent: 200.0,
mainAxisSpacing: 10.0,
crossAxisSpacing: 10.0,
childAspectRatio: 4.0,
),
delegate: SliverChildBuilderDelegate(
(BuildContext context, int index) {
return Container(
alignment: Alignment.center,
color: Colors.teal[100 * (index % 9)],
child: Text('grid item $index'),
);
},
childCount: 20,
),
),
SliverFixedExtentList(
itemExtent: 50.0,
delegate: SliverChildBuilderDelegate(
(BuildContext context, int index) {
return Container(
alignment: Alignment.center,
color: Colors.lightBlue[100 * (index % 9)],
child: Text('list item $index'),
);
},
),
),
],
));
}
}
答案 2 :(得分:-1)
Scaffold(
body:
// list view here
bottomNavigationBar: GestureDetector(
child: Container(
height: 50,
width: 325,
child: Center(
child: Text(
"title",
),
onTap: (){},
),
);
这对我来说是可行的