-1
votes

Comment définir la hauteur de conteneur ajustée à l'écran

note forte>: ce widget est enfant d'une autre colonne em>


J'ai besoin d'utiliser listview.builder à l'intérieur de la colonne, mais pour l'utiliser à l'intérieur de la colonne, je dois l'envelopper avec un conteneur non seulement que j'ai besoin de définir la hauteur,
Ici, j'ai utilisé Mediaquery.of (contexte) .Size.height et il Travaux,
Mais avec un seul problème, il montre que un renduflex débude de 226 pixels sur le fond. em>

Comment éviter? P>

import 'dart:collection';

import 'package:devaayanam/DevaayanamApp/devaayanam_app_communities.dart';
import 'package:devaayanam/DevaayanamApp/devaayanam_app_home_page.dart';
import 'package:devaayanam/DevaayanamApp/devaayanam_app_temples_listing.dart';
import 'package:devaayanam/DevaayanamApp/devaayanam_app_videos.dart';
import 'package:flutter/material.dart';

import '../GradientAppBar.dart';
import 'temples_listing_with_tab_mode.dart';

class DevaayanamAppFramePage extends StatefulWidget {
  DevaayanamAppFramePage({Key key}) : super(key: key);

  @override
  _DevaayanamAppFramePageState createState() => _DevaayanamAppFramePageState();
}

class _DevaayanamAppFramePageState extends State<DevaayanamAppFramePage> {
  int _selectedIndex = 0;
  ListQueue<Widget> page1,page2,page3,page4;
  _DevaayanamAppFramePageState(){
    page1=ListQueue();
    page1.add(DevaayanamAppHomePage());
    page2=ListQueue();
    page2.add(DevaayanamAppTemplesListing());
    page3=ListQueue();
    page3.add(DevaayanamAppCommunities());
    page4=ListQueue();
    page4.add(DevaayanamAppVideos());
  }
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: null,

      bottomNavigationBar: BottomNavigationBar(
          onTap: _onItemTapped,
          unselectedItemColor: Colors.grey,
          selectedItemColor: Colors.grey,
          currentIndex: _selectedIndex,
          items: <BottomNavigationBarItem>[
            BottomNavigationBarItem(
                icon: Icon(
                  Icons.home,
                  color: Colors.grey,
                ),
                title: Text(
                  "Home",
                  style: TextStyle(color: Colors.grey),
                )),
            BottomNavigationBarItem(
                icon: Icon(Icons.assessment),
                title: Text(
                  "Temples",
                  style: TextStyle(color: Colors.grey),
                )),
            BottomNavigationBarItem(
                icon: Icon(Icons.comment),
                title: Text(
                  "Communities",
                  style: TextStyle(color: Colors.grey),
                )),
            BottomNavigationBarItem(
                icon: Icon(Icons.play_arrow),
                title: Text(
                  "Videos",
                  style: TextStyle(color: Colors.grey),
                )),
          ]),

      body: Container(
        child: Column(
          children: <Widget>[GradientAppBar(),getBody()],
        ),
      ),
    );
  }


  Widget getBody(){
    switch(_selectedIndex){
      case 0:
        return page1.last;
      case 1:
        return page2.last;
      case 2:
        return page3.last;
      case 3:
        return page4.last;
    }
  }
  void _onItemTapped(int index) {
    setState(() {
      _selectedIndex = index;
    });
  }
}


1 commentaires

4 Réponses :


6
votes

Son arrive en raison de la topwidget (), ce que vous pouvez faire est d'envelopper le conteneur intérieur avec expansé et de retirer la hauteur que vous donnez. Widget étendu fera que le conteneur prendra l'espace complet disponible. XXX

Edit: Veuillez noter que l'expansion ne vous aide pas à moins que la colonne est la plus externe la colonne de la hiérarchie du widget. Si vous avez une colonne dans une colonne, enveloppez l'enfant de la colonne supérieure avec expansé.


7 commentaires

Je suis sûr que cela est à cause de widgets qui sont dans la hiérarchie. Veuillez joindre la fonction de construction complète.


Colonne est-il un enfant direct ou est l'un des enfants d'un autre widget?


Ce widget est un enfant d'une autre colonne


Là nous allons. C'est le problème.


Ok, alors quelle est la solution?


Y a-t-il un widget supérieur à cette colonne qui est le parent de la colonne intérieure?


Laissez-nous Continuez cette discussion en chat .



0
votes

Vous pouvez l'utiliser comme ceci:

Column(
                  children: <Widget>[
                    getTopWidget(),
                    Expanded(    
                      child: ListView.builder(
                          itemCount: shapShot.data.length,
                          itemBuilder: (context,index){
                        return  EventCard(
                          title: shapShot.data[index].title,
                          details: shapShot.data[index].details,
                          imageUrl: shapShot.data[index].imageUrl,
                        );
                      }),
                    ),
                  ],
                );


6 commentaires

Renderbox n'a pas été aménagée: Renderrepaintboundary # 76déded Besoins - Paquet de peinture-peinture 'Package: Flutter / SRC / Rendu / Box.Dart': Échec de l'affirmation: Ligne 1695 POS 12: 'Hasssize'


Pouvez-vous s'il vous plaît ajouter la capture d'écran.


@Midhilaj Avez-vous essayé mon code ci-dessus? Parce que je pense qu'après avoir utilisé cela, votre problème est résolu s'il n'y a pas d'autre erreur.


Vérifiez ma question j'ai mise à jour avec la capture d'écran lorsque j'utilise cette solution


@Midhilaj Pouvez-vous également ajouter tout le code de classe que vous avez mis en œuvre


Dans ce cas, n'oubliez pas de définir contrastrap: true dans la liste de liste



1
votes

première enveloppe la colonne avec un conteneur avec une hauteur de jeu: xxx

maintenant dans la colonne, enveloppez l'enfant que vous souhaitez développer avec widget expansé afin qu'il se développerait à la hauteur de la colonne (avec une hauteur de conteneur extérieur).


0 commentaires

0
votes

Vous pouvez utiliser:

Container(
      height: MediaQuery.of(context).size.height * 60/100,
      width:MediaQuery.of(context).size.width * 40/100,
     child:Expanded(
           child : Column(
...... 
           ),
      ),
),


0 commentaires