gpt4 book ai didi

flutter - 如何在 Flutter 中创建一个带有圆角的持久底部表?

转载 作者:IT王子 更新时间:2023-10-29 06:43:12 25 4
gpt4 key购买 nike

我想创建一个带有圆角的持久 BottomSheet,但无法实现结果。我已经尝试过链接“How to create a modal bottomsheet with circular corners in Flutter?”中给出的代码,但它实现了模式表。

我已经尝试过将其用于持久性工作表,但没有成功。请帮助我如何做到这一点。

下面的代码有效并显示了一个 bottomsheet,但角落没有变圆。

void _showBottomSheet() {
_scaffoldKey.currentState.showBottomSheet<void>((BuildContext context) {
final ThemeData themeData = Theme.of(context);
return new Container(
padding: const EdgeInsets.all(0),
width: double.infinity,
color: Colors.transparent,
decoration: BoxDecoration(
borderRadius: new BorderRadius.only(
bottomLeft: const Radius.circular(10.0),
bottomRight: const Radius.circular(10.0)),
),
child: new Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
BottomNavigationBar(
currentIndex: 0, // this will be set when a new tab is tapped
items: [
BottomNavigationBarItem(
icon: new Icon(Icons.share),
title: new Text('Share'),
),
BottomNavigationBarItem(
icon: Icon(Icons.bookmark),
title: Text('Bookmark')
)
],
onTap: (index)
{
if(index ==0)
{
final RenderBox box = context.findRenderObject();
Share.share('Hello this is a test',
sharePositionOrigin:
box.localToGlobal(Offset.zero) & box.size);
}
},
),
])
);
})
.closed.whenComplete(() {
if (mounted) {
setState(() { // re-enable the button
_showBottomSheetCallback = _showBottomSheet;
print ("_showBottomSheetCallback enable");
});
}

});
}

最佳答案

您可以使用 - ClipRRect 小部件。

void _showBottomSheet() {
_scaffoldKey.currentState
.showBottomSheet<void>((BuildContext context) {
final ThemeData themeData = Theme.of(context);
return Theme(
data: themeData.copyWith(canvasColor: Colors.orangeAccent,),
child: DecoratedBox(
decoration: BoxDecoration(color: Colors.transparent),
child: ClipRRect(
borderRadius: BorderRadius.only(
topLeft: Radius.circular(22.0),
topRight: Radius.circular(22.0)),
child:
new Column(mainAxisSize: MainAxisSize.min, children: <Widget>[
BottomNavigationBar(
currentIndex: 0, // this will be set when a new tab is tapped
items: [
BottomNavigationBarItem(
icon: new Icon(Icons.share),
title: new Text('Share'),
),
BottomNavigationBarItem(
icon: Icon(Icons.bookmark),
title: Text('Bookmark'))
],
onTap: (index) {
if (index == 0) {
final RenderBox box = context.findRenderObject();
// Share.share('Hello this is a test',
// sharePositionOrigin:
// box.localToGlobal(Offset.zero) & box.size);
}
},
),
]),
),
),
);
})
.closed
.whenComplete(() {
if (mounted) {
// setState(() { // re-enable the button
// _showBottomSheetCallback = _showBottomSheet;
// print ("_showBottomSheetCallback enable");
// });
}
});
}

输出:

enter image description here

关于flutter - 如何在 Flutter 中创建一个带有圆角的持久底部表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54671970/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com