SliverAppBar前导背景半径

问题描述 投票:0回答:1

我正在尝试使用SliverAppBar将背景添加到前导图标。我可以提供一个,但不能减小圆半径。我已经尝试过使用Container()CircleAvatar,但是问题是圆太大了,我不知道如何减小圆的大小。这是我的代码:

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: NestedScrollView(
        headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) {
          return <Widget>[
            SliverAppBar(
              leading: CircleAvatar(
                backgroundColor: Colors.yellow,
                radius: 10,
                child: IconButton(
                  onPressed: () {},
                  icon: Icon(
                    Icons.arrow_back_ios,
                  ),
                ),
              ),
              expandedHeight: 200.0,
              floating: false,
              pinned: true,
              flexibleSpace: FlexibleSpaceBar(
                background: Image.network(
                  'https://simpleactivity435203168.files.wordpress.com/2019/09/flutter-1024x486.png?w=1086',
                  fit: BoxFit.fill,
                ),
              ),
            ),
          ];
        },
        body: Container(),
      ),
    );
  }
}

获得:

enter image description here

flutter dart flutter-layout
1个回答
0
投票

您可以在下面复制粘贴运行完整代码您可以使用Transform.scale缩小CircleAvatar大小代码段

 SliverAppBar(
              leading: Transform.scale(
                scale: 0.5,
                child: CircleAvatar(

工作演示

enter image description here

完整代码

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,
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: NestedScrollView(
        headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) {
          return <Widget>[
            SliverAppBar(
              leading: Transform.scale(
                scale: 0.5,
                child: CircleAvatar(
                  backgroundColor: Colors.yellow,
                  radius: 10,
                  child: IconButton(
                    onPressed: () {},
                    icon: Icon(
                      Icons.arrow_back_ios,
                    ),
                  ),
                ),
              ),
              expandedHeight: 200.0,
              floating: false,
              pinned: true,
              flexibleSpace: FlexibleSpaceBar(
                background: Image.network(
                  'https://simpleactivity435203168.files.wordpress.com/2019/09/flutter-1024x486.png?w=1086',
                  fit: BoxFit.fill,
                ),
              ),
            ),
          ];
        },
        body: Container(),
      ),
    );
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.