Flutter: Les éléments BottomNavigationBar deviennent blancs lorsque plus de 3 éléments sont présents

CrĂ©Ă© le 17 dĂ©c. 2017  Â·  21Commentaires  Â·  Source: flutter/flutter

Étapes à suivre pour reproduire

Lorsque vous ajoutez plus de 3 Ă©lĂ©ments dans un BottomNavigationBar , tous les Ă©lĂ©ments deviennent blancs et sont illisibles sur le fond gris clair. De plus, l'Ă©lĂ©ment actif est Ă©galement blanc, et non le fixedColor fourni. Un exemple de code minimal peut ĂȘtre trouvĂ© ici

Voir également les images suivantes :

schermafbeelding 2017-12-17 om 20 52 39

schermafbeelding 2017-12-17 om 20 52 50

Journaux

N / A

Docteur 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

Commentaire le plus utile

Si vous n'avez pas compris comment y remédier :

bottomNavigationBar: BottomNavigationBar(
          type: BottomNavigationBarType.fixed,

Tous les 21 commentaires

/cc @xster

cc @HansMuller , je me souviens vaguement d'avoir vu un bug plus ancien Ă  ce sujet mais je ne le trouve pas

lors de l'utilisation de BottomNavigationBarType.fixed cela ok, mais lors de l'utilisation de BottomNavigationBarType.shifting ce mauvais

Moi aussi j'ai ce problÚme. Quelqu'un sait comment réparer ceci?

mĂȘme problĂšme pour moi

J'ai ajouté ceci à notre liste de choses à regarder plus tard cette année. Nous serions heureux d'examiner les correctifs si quelqu'un a la possibilité de regarder le code et de comprendre ce qui se passe avant d'y arriver.

Lorsque plus de 3 Ă©lĂ©ments BottomNavigationBar sont fournis, le type, s'il n'est pas spĂ©cifiĂ©, passe Ă  BottomNavigationBarType.shifting selon https://docs.flutter.io/flutter/material/BottomNavigationBar/BottomNavigationBar.html. Cette information doit ĂȘtre mise en Ă©vidence dans la doc de la classe. Il est facile de nĂ©gliger oĂč il se trouve (je l'ai nĂ©gligĂ©).

Lorsque le type de BottomNavigationBar est BottomNavigationBarType.shifting , le texte et les icÎnes des éléments sont rendus en blanc, via DefaultTextStyle et IconTheme. On suppose que leur BottomNavigationBarItem.backgroundColor sera spécifié comme une couleur contrastante. C'est évidemment déroutant.

L'idée générale avec les barres de navigation inférieures de type shifting est que chaque élément aura une couleur d'arriÚre-plan différente (qui contraste avec le blanc), puisque cette couleur deviendra la couleur de toute la barre de navigation, lorsque l'élément sera sélectionné.

La documentation pour BottomNavigationBar et NavigationBarItem doit ĂȘtre amĂ©liorĂ©e.

@HansMuller Merci, cela a fonctionné !

@HansMuller , félicitations !

Si vous n'avez pas compris comment y remédier :

bottomNavigationBar: BottomNavigationBar(
          type: BottomNavigationBarType.fixed,

Suis-je le seul à penser qu'il ne devrait pas changer automatiquement de comportement en fonction du nombre d'onglets ?
Il ne me semble pas intuitif de s'attendre à un comportement différent.

merci 👍

Merci.

Que dois-je faire si je ne veux pas que les icÎnes soient blanches, mais qu'elles aient le comportement de se déplacer?

Pourquoi ne pas simplement définir le type par défaut .fixed ?

Je sais que ce problĂšme a Ă©tĂ© fermĂ©, mais cela ressemble toujours Ă  un bogue mĂȘme si la documentation a Ă©tĂ© bien mise Ă  jour.
Je suggérerais de corriger la valeur par défaut ou de corriger le comportement de BottomNavigationBarType.shifting avec quatre éléments.

J'ai fourni l'agrment " backgroundColor" pour chaque "BottomNavigationBarItem" et le problÚme est résolu.

J'ai réussi à résoudre le problÚme en entrant la propriété showUnselectedLabels: true, dans la BottomNavigationBar

return new BottomNavigationBar(

  showUnselectedLabels: true,

  items: <BottomNavigationBarItem>[...

qu'est-ce que nous ne voulons pas que le comportement change si nous avons plus de trois éléments. Y a-t-il un travail autour pour cela?

ajouter showUnselec tedLabels:true Ă  BottomNavigationBar
ajouter backgroundColor: Colors.blue Ă  BottomNavigationBarItem
Puis tout montré

Suis-je le seul à penser que je ne devrais pas modifier automatiquement le comportement en fonction du nombre d'onglets ?
Il ne me semble pas intuitif de s'attendre à un comportement différent.

je pense la mĂȘme chose

Cette page vous a été utile?
0 / 5 - 0 notes