Как я могу изменить размер стандартного значка меню гамбургера на ящик в Flutter через тему - PullRequest
0 голосов
/ 28 февраля 2020

При создании темы:

appBarTheme: new AppBarTheme(
          iconTheme: base.appBarTheme.iconTheme.copyWith(size: 100, color: Colors.red), 
          //Color is working but size having no effect*
        ),

Ответы [ 2 ]

1 голос
/ 28 февраля 2020

Самый простой способ изменить меню гамбургера - изменить виджет leading из AppBar

final _scaffoldKey = new GlobalKey<ScaffoldState>();

@override
Widget build(BuildContext context) {
    return Scaffold(
      key: _scaffoldKey,
      appBar: AppBar(
        leading: IconButton(
          icon: Icon(Icons.menu, size: 40), // change this size and style
          onPressed: () => _scaffoldKey.currentState.openDrawer(),
        ),
        title: Text('Home Screen'),
      ),
      body: Container(),
      drawer: Container(
        width: 300,
        color: Colors.white,
      ),
   );
}

Это изменение создаст огромное меню гамбургера:

Hamburger Menu

0 голосов
/ 28 февраля 2020

    import 'dart:math';
    import 'package:app_with_bloc/util/MyScreenUtil.dart';
    import 'package:flutter/material.dart';

    class AppBar extends StatefulWidget implements PreferredSizeWidget {
      GlobalKey scaffoldKey;

    //  AppBar(this.scaffoldKey, {Key key}) : preferredSize = Size.fromHeight(kToolbarHeight), super(key: key);
      AppBar(this.scaffoldKey, {Key key})
          : preferredSize = Size.fromHeight(max(MyScreenUtil().getScaledSize(kToolbarHeight), kToolbarHeight)),
            super(key: key);

      @override
      final Size preferredSize; // default is 56.0

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

    class _AppBarState extends State {
      @override
      Widget build(BuildContext context) {
        return Container(
          color: Colors.blue,
          child: SafeArea(
            child: Row(mainAxisAlignment: MainAxisAlignment.spaceBetween, crossAxisAlignment: CrossAxisAlignment.center, children: [
              Padding(
                padding: EdgeInsets.only(bottom: MyScreenUtil().getScaledSize(4.0), left: MyScreenUtil().getScaledSize(4.0), ),
                child: IconButton(
                  icon: Icon(Icons.menu, size: MyScreenUtil().getScaledSize(26), color: Colors.white), // change this size and style
                  onPressed: () => widget.scaffoldKey.currentState.openDrawer(),
                ),
              ),
              Padding(
                padding: EdgeInsets.all(MyScreenUtil().getScaledSize(8.0)),
                child: Text('Start', style: Theme.of(context).textTheme.title.apply(fontSizeFactor: 1.4, color: Colors.white)),
              ),
              Padding(
                padding: EdgeInsets.only(bottom: MyScreenUtil().getScaledSize(4.0), right: MyScreenUtil().getScaledSize(4.0), ),
                child: IconButton(
                  icon: Icon(Icons.menu, size: MyScreenUtil().getScaledSize(26), color: Colors.white),
                ),
              ),
            ]
           ),
          ),
        );
      }
    }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...