Положение пользовательского флаттера - PullRequest
0 голосов
/ 25 июня 2019

Я пытаюсь добавить пользовательский значок (Font Awesome Light).Я уже попробовал пакет, который сделал это, но только для бесплатных значков.

Я следовал этому руководству: https://medium.com/flutterpub/how-to-use-custom-icons-in-flutter-834a079d977

Значок находится здесь, но не центрирован в моей BottomNavigationBar, экран ниже.

Работает со значком по умолчанию, я не знаю, что попробовать сейчас.Я буду благодарен за любую помощь или идеи.

main.dart

@override
Widget build(BuildContext context) {
return Scaffold(
  body: Center(
    child: _widgetOptions.elementAt(_selectedIndex),
  ),
  bottomNavigationBar: BottomNavigationBar(
  items: const <BottomNavigationBarItem>[
    ...
    BottomNavigationBarItem(
      icon: Icon(WuliIcons.dumbbell),
      title: Text('School'),
      backgroundColor: Colors.red
    ),
    BottomNavigationBarItem(
      icon: Icon(Icons.school),
      title: Text('School'),
      backgroundColor: Colors.red
    ),
  ],
  currentIndex: _selectedIndex,
  onTap: _onItemTapped,
),
);
}

, где я определяю свой класс значков:

import 'package:flutter/widgets.dart';

class WuliIcons {
  WuliIcons._();

  static const _kFontFam = 'FontAwesomeLight';

  static const IconData dumbbell = const IconData(0xf44b, fontFamily: _kFontFam);
}

pubspec.yml

flutter:
  fonts:
    - family:  FontAwesomeLight
      fonts:
       - asset: fonts/fa-light-300.ttf

1 Ответ

1 голос
/ 26 июня 2019

После многих исследований без навигационной панели кажется, что пользовательский значок имеет больший размер, чем он говорит своим родителям (как вы можете видеть на картинке, это только значок в контейнере).

enter image description here

Тогда я попробовал что-то странное в панели навигации, сделать контейнер большой ширины, и это работает ...

BottomNavigationBarItem(
  icon: Container(width: 1000, child: Icon(FontAwesomeLight.utensils_alt)),
  title: Text('Food'),
  backgroundColor: Colors.purple
),
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...