【问题标题】:Rounded corners with Customscrolview and SliverList / SliverAppBar in FlutterFlutter 中带有 Customscrollview 和 SliverList / SliverAppBar 的圆角
【发布时间】:2021-02-14 09:59:43
【问题描述】:

我正在 Flutter 中开发一个应用程序,并希望我的 SliverAppBar 具有以下设计,并且在我的应用程序的底部有圆角。当我使用 slivers 时如何做到这一点?

Design rounded corner

我在 Dribbble 上找到了 YouTuber 的设计,他将应用程序作为教程创建,但没有使用带有 Slivers 的 PageView

这是我正在使用的代码的简化版本:

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: PageView(
          children: [
            CustomScrollView(
              slivers: <Widget>[
                SliverAppBar(
                  backgroundColor: Colors.red,
                  expandedHeight: 250.0,
                ),
                SliverList(
                    delegate: SliverChildBuilderDelegate(
                  (BuildContext context, int index) {
                    return Card(
                      child: ListTile(
                        title: Text('something'),
                      ),
                    );
                  },
                  childCount: 10,
                ))
              ],
            ),
          ],
        ),
      ),
    );
  }
}

【问题讨论】:

  • 嘿,我想帮忙,但您在帖子中并没有完全提出问题。这会让其他人更容易提供帮助!更新帖子也许我能帮上忙。
  • 嗨,我更新了我的问题,希望现在一切都清楚了!
  • 我查看了您提供的 YouTube 教程。似乎关键部分是他用来构建 body/scrollable-area 的Column 可以采用boxDecoration 参数。这不是 Sliver 小部件树中的一个选项,也不是注入边框来实现它。据我所知,由于 SliverList 对象没有 boxDecoration 参数,因此在您的情况下使用 Sliver Widgets 是不可能的。可能有人有一个聪明的办法来实现这一点,但我也不会说“这是不可能的”,因为您可能可以使用 Sliver 小部件以外的小部件。
  • 非常感谢您尝试帮助我!我认为这也是不可能的,除非他们可以将我的SliverList 转换为容器。

标签: flutter flutter-layout


【解决方案1】:

像这样使用 SliverPadding

   DefaultTabController(
    child:NestedScrollView(
    headerSliverBuilder:
       (BuildContext context, bool innerBoxIsScrolled) {
   return [
        SliverPadding(
            padding: new EdgeInsets.only(top: 5.0),
            sliver: new SliverList(
            delegate: new SliverChildListDelegate(
            [YOR_WIDGET()]),
            ),
        );
    ]

【讨论】:

  • 这不是我想做的,但我很感激你试图帮助我!
猜你喜欢
  • 2020-04-29
  • 1970-01-01
  • 2020-10-07
  • 2021-01-22
  • 2019-06-20
  • 2021-05-03
  • 2020-02-04
  • 2019-09-23
  • 2018-09-25
相关资源
最近更新 更多