Flutter: Os itens BottomNavigationBar ficam brancos quando mais de 3 itens estão presentes

Criado em 17 dez. 2017  ·  21Comentários  ·  Fonte: flutter/flutter

Passos para reproduzir

Ao adicionar mais de 3 itens em um BottomNavigationBar , todos os itens ficam brancos e são ilegíveis no fundo cinza claro. Além disso, o item ativo também é branco, e não o fixedColor . Um exemplo de código mínimo pode ser encontrado aqui

Veja também as seguintes imagens:

schermafbeelding 2017-12-17 om 20 52 39

schermafbeelding 2017-12-17 om 20 52 50

Histórico

N / D

Médico Flutter

[✓] Flutter (on Mac OS X 10.13.1 17B1003, locale nl-NL, channel alpha)
    • Flutter at /Users/dirk/Developer/flutter/sdk
    • Framework revision 8f65fec5f5 (5 days ago), 2017-12-12 09:50:14 -0800
    • Engine revision edaecdc8b8
    • Tools Dart version 1.25.0-dev.11.0
    • Engine Dart version 2.0.0-edge.d8ae797298c3a6cf8dc9f4558707bd2672224d3e

[✓] Android toolchain - develop for Android devices (Android SDK 26.0.0)
    • Android SDK at /Users/dirk/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-26, build-tools 26.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_112-release-b06)

[-] iOS toolchain - develop for iOS devices (Xcode 9.2)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 9.2, Build version 9C40b
    ✗ libimobiledevice and ideviceinstaller are not installed. To install, run:
        brew install --HEAD libimobiledevice
        brew install ideviceinstaller
    ✗ ios-deploy not installed. To install:
        brew install ios-deploy
    • CocoaPods version 1.2.0

[✓] Android Studio (version 2.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Java version OpenJDK Runtime Environment (build 1.8.0_112-release-b06)

[✓] IntelliJ IDEA Ultimate Edition (version 2017.3)
    • Flutter plugin version 20.0.3
    • Dart plugin version 173.3727.108

[✓] Connected devices
    • iPhone X • 9500EA8E-1292-4223-BFFF-1B2134D5C47C • ios • iOS 11.2 (simulator)
annoyance material design framework

Comentários muito úteis

Se você não entendeu como corrigi-lo:

bottomNavigationBar: BottomNavigationBar(
          type: BottomNavigationBarType.fixed,

Todos 21 comentários

/cc @xster

cc @HansMuller , lembro vagamente de ter visto um bug mais antigo sobre isso, mas não consigo encontrá-lo

quando usar BottomNavigationBarType.fixed isso ok, mas quando usar BottomNavigationBarType.shifting errado

Eu também tenho esse problema. Alguém sabe como consertar isso?

mesmo problema comigo

Eu adicionei isso à nossa lista de coisas para ver ainda este ano. Ficaríamos felizes em revisar os patches se alguém tiver a oportunidade de examinar o código e descobrir o que está acontecendo antes de chegarmos a ele.

Quando mais de 3 itens BottomNavigationBar são fornecidos, o tipo, se não especificado, muda para BottomNavigationBarType.shifting por https://docs.flutter.io/flutter/material/BottomNavigationBar/BottomNavigationBar.html. Essa informação deve ser destacada no documento da classe. É fácil ignorar onde está (eu ignorei).

Quando o tipo de BottomNavigationBar é BottomNavigationBarType.shifting o texto e os ícones dos itens são renderizados em branco, via DefaultTextStyle e IconTheme. Supõe-se que seu BottomNavigationBarItem.backgroundColor será especificado como uma cor contrastante. Isso é obviamente confuso.

A ideia geral das barras de navegação inferiores do tipo shifting é que cada item terá uma cor de fundo diferente (que contrasta com o branco), pois essa cor se tornará a cor de toda a barra de navegação, quando o item for selecionado.

O documento para BottomNavigationBar e NavigationBarItem precisa ser aprimorado.

@HansMuller Obrigado, funcionou!

@HansMuller , parabéns!

Se você não entendeu como corrigi-lo:

bottomNavigationBar: BottomNavigationBar(
          type: BottomNavigationBarType.fixed,

Sou o único que acha que não deve mudar o comportamento com base no número de abas automaticamente?
Não me parece intuitivo esperar um comportamento diferente.

obrigado 👍

obrigada.

O que eu faço, se eu não quiser que os ícones sejam brancos, mas ele deve ter o comportamento de deslocamento?

Por que não tornar o tipo padrão .fixed?

Eu sei que esse problema foi encerrado, mas ainda parece um bug, embora a documentação tenha sido bem atualizada.
Eu sugiro corrigir o padrão ou corrigir o comportamento de BottomNavigationBarType.shifting com quatro itens.

Forneci o agrument "backgroundColor" para cada "BottomNavigationBarItem" e o problema foi resolvido.

Eu consegui resolver o problema inserindo a propriedade showUnselectedLabels: true, no BottomNavigationBar

return new BottomNavigationBar(

  showUnselectedLabels: true,

  items: <BottomNavigationBarItem>[...

o que é que não queremos que o comportamento mude se tivermos mais de três itens. Existe algum trabalho para isso?

adicione showUnselect tedLabels:true to BottomNavigationBar
adicione backgroundColor: Colors.blue para BottomNavigationBarItem
Então tudo mostrado

Só eu acho que não devo mudar o comportamento com base no número de abas automaticamente?
Não me parece intuitivo esperar um comportamento diferente.

Eu acho o mesmo

Esta página foi útil?
0 / 5 - 0 avaliações