0

Je rencontre des problèmes avec un composant d'interface utilisateur native utilisé dans React-Native. La situation est que j'ai une mise en page existante, fonctionnelle et complète dans Android que j'ai besoin de réutiliser dans une vue réactive-native.Composant d'interface utilisateur natif Android ne pas mettre à jour

La mise en page existante (dans Android):

  • a une charge de mise en page
  • a une RecyclerView
  • -t appels api-tout en montrant le chargement de mise en page
  • une fois fait, il met à jour la RecyclerView et cache le chargement-mise en page
  • fonctionne parfaitement dans un environnement natif.

Pour exposer cette mise en page existante et l'utiliser dans je réagis-autochtone fait comme dit par le docs. L'exposition de propriétés, de rappels ou d'événements n'était pas requise car la disposition existante est fermée et fonctionne telle quelle.

REACT-native Vue:

  • est une vue simple
  • qui importe la mise en page existante telle que décrite par les docs
  • montre en fait la charge initiale de mise en page de la mise en page existante

Le problème se produit lorsque les données sont chargées. Avec le débogage, vous pouvez voir que le code est exécuté pour mettre à jour la mise en page, mais cela n'est pas affiché visuellement. La mise en page de chargement continue à s'afficher jusqu'à ce que vous exécutiez un geste de défilement qui redessine l'écran et affiche RecyclerView avec les données chargées. Comme si le RecyclerView était déjà là mais ne s'affichait pas.

Quelqu'un sait-il quel pourrait être le problème?

Merci, c'est l'avance!

Répondre

0

essayer d'ajouter cette fonction, et changer base_svg au IEW que vous disered:

private final Runnable measureAndLayout = new Runnable() { 
     @Override 
     public void run() { 
      base_svg.measure(
        View.MeasureSpec.makeMeasureSpec(base_svg.getWidth(), View.MeasureSpec.EXACTLY), 
        View.MeasureSpec.makeMeasureSpec(base_svg.getHeight(), View.MeasureSpec.EXACTLY)); 
      base_svg.layout(base_svg.getLeft(), base_svg.getTop(), base_svg.getRight(), base_svg.getBottom()); 
     } 
    }; 

Après avoir ajouté les nouvelles informations à l'appel d'écran qui fonctionne de cette façon:

base_svg.post(measureAndLayout); 

Vérifiez si il rend les nouvelles vues que vous ajoutez ou supprimez.

Pour être honnête, je ne sais pas pourquoi. mais ce travail pour moi. Je pense que réagir vous oblige à rendre juste quand réagir veut. Cochez cette case issue pour plus de compréhension.