unselectedLabelstyle не работает во флаттере - PullRequest
0 голосов
/ 01 мая 2020

Почему мой unselectedLabelStyle мне не подходит? после сохранения моих изменений с атрибутом textStyle в этом unselectedLabelStyle мне ничего не изменится: /

class _NavBarState extends State<NavBar> {
  int _selectedPage = 0;

  PageController pageController = PageController();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: PageView(
        controller: pageController,
        children: <Widget>[
          HomeScreen(),
          MapScreen(),
          SearchScreen(),
          AccountScreen(),
        ],
      ),
      bottomNavigationBar: BottomNavigationBar(
        type: BottomNavigationBarType.fixed,
        currentIndex: _selectedPage,
        backgroundColor: Colors.white,
        selectedIconTheme: IconThemeData(color: Colors.black, size: 32),
        // selectedLabelStyle: TextStyle(fontWeight: FontWeight.bold),
        unselectedIconTheme: IconThemeData(size: 26, color: Colors.grey.shade300),
        unselectedLabelStyle: TextStyle(color: Colors.grey.shade300),//HEEEEEERRRRRRRRREEEEEE
        onTap: (int index) {
          setState(() {
            _selectedPage = index;
          });

          pageController.animateToPage(
            index,
            duration: Duration(milliseconds: 500),
            curve:
                Curves.easeInOutExpo, 
          );
        },
        items: [
          BottomNavigationBarItem(
              icon: Icon(
                Icons.home,
              ),
              title: Text('Główna', style: TextStyle(color: Colors.black))),
          BottomNavigationBarItem(
              icon: Icon(
                Icons.location_on,
              ),
              title: Text('Mapa', style: TextStyle(color: Colors.black))),
          BottomNavigationBarItem(
              icon: Icon(
                Icons.search,
              ),
              title: Text('Szukaj', style: TextStyle(color: Colors.black))),
          BottomNavigationBarItem(
            icon: Icon(
              Icons.person,
            ),
            title: Text('Konto', style: TextStyle(color: Colors.black)),
          ),
        ],
      ),
    );
  }

  @override
  void dispose() {
    pageController.dispose();
    super.dispose();
  }
}

1 Ответ

1 голос
/ 02 мая 2020

Вы перекрываете textStyle, предоставляя стиль заголовка непосредственно в заголовке, кроме того, вы можете использовать свойство unselectedItemColor для изменения цвета невыбранных элементов.

unselectedItemColor: Colors.grey,

Изменить заголовок с

 title: Text('Główna', style: TextStyle(color: Colors.black))),

To:

 title: Text('Główna')),

Более того, я думаю, что вы должны сообщать об ошибке в flutter sdk, потому что она не работает так, как вы ожидаете.

 /// If [selectedLabelStyle.color] and [unselectedLabelStyle.color] values
  /// are non-null, they will be used instead of [selectedItemColor] and
  /// [unselectedItemColor].

Согласно следующий комментарий к документации, если вы укажете цвет unselectedLabelStyle, тогда он должен использовать этот цвет, но не использует его.

...