Saltar al contenido

divide la pantalla en dos partes iguales en flutter

Hacemos una verificación exhaustiva cada una de las secciones en nuestro sitio web con el objetivo de mostrarte siempre la información certera y actual.

Solución:

El uso de un widget Expandido hace que un elemento secundario de una Fila, Columna o Flex se expanda para llenar el espacio disponible en el eje principal (por ejemplo, horizontalmente para una Fila o verticalmente para una Columna). Si se expanden varios hijos, el espacio disponible se divide entre ellos según el factor flexible.

https://docs.flutter.io/flutter/widgets/Expanded-class.html

Column(
  children: [
    Expanded(
      child: TopWidget()
    ),
    CenterWidget(),
    Expanded(
      child: BottomWidget()
    ),
  ]
)

Editar: código fuente completo aquí

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget 
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) 
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  


class MyHomePage extends StatefulWidget 
  MyHomePage(Key key, this.title) : super(key: key);
  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();


class _MyHomePageState extends State 

  @override
  Widget build(BuildContext context) 
    return Column(
        children: [
          Expanded(
              child: Container(
                color: Colors.green,
              )
          ),
          Container(
              height: 40,
              color: Colors.grey
          ),
          Expanded(
              child: Container(
                color: Colors.blueGrey,
              )
          ),
        ]
    );
  

Edición 2: y resultado aquí

resultado

Puedes usar – MediaQuery para obtener el tamaño de la pantalla, divídalo por 2 para obtener la primera mitad.

@override
  Widget build(BuildContext context) 
    return MaterialApp(
        title: title,
//        theme: ThemeData.light().copyWith(
//          platform: _platform ?? Theme.of(context).platform,
//        ),
        home: DefaultTabController(
            length: 3,
            child: Scaffold(
//                appBar: AppBar(
//                  title: Text(title),
//                ),
                body: SafeArea(
                    child: Column(children: [
                  Container(
                    color: Colors.greenAccent,
                    height: MediaQuery.of(context).size.height / 2.2,  // Also Including Tab-bar height.
//                        child: Chewie(
//                          controller: _chewieController,
//                        ),
                  ),
                  PreferredSize(
                    preferredSize: Size.fromHeight(50.0),
                    child: TabBar(
                      labelColor: Colors.black,
                      tabs: [
                        Tab(
                          text: 'One',
                        ),
                        Tab(
                          text: 'Two',
                        ),
                        Tab(
                          text: 'Three',
                        )
                      ], // list of tabs
                    ),
                  ),
                  //TabBarView(children: [ImageList(),])
                  Expanded(
                    child: TabBarView(
                      children: [
                        Container(
                          color: Colors.deepOrange,
                          child: Center(child: Text('Tab1')),
                        ),
                        Container(
                          color: Colors.red,
                          child: Center(child: Text('Tab2')),
                        ),
                        Container(
                          color: Colors.yellowAccent,
                          child: Center(child: Text('Tab3')),
                        ) // class name
                      ],
                    ),
                  ),
                ])))));
  

Producción:

ingrese la descripción de la imagen aquí

con la barra de aplicaciones – height: MediaQuery.of(context).size.height / 2.5,ingrese la descripción de la imagen aquí

con GridView.builder en – TabBarView

Expanded(
                    child: TabBarView(
                      children: [
                        GridView.builder(
                          itemBuilder: (context, int) 
                            return CircleAvatar(
                              backgroundImage: NetworkImage(
                                  'https://placeimg.com/640/480/any'),
                            );
                          ,
                          itemCount: 20,
                          gridDelegate:
                              SliverGridDelegateWithFixedCrossAxisCount(
                                  crossAxisCount: 3),
                          shrinkWrap: true,
                        ),
                        Container(
                          color: Colors.red,
                          child: Center(child: Text('Tab2')),
                        ),
                        Container(
                          color: Colors.yellowAccent,
                          child: Center(child: Text('Tab3')),
                        ) // class name
                      ],
                    ),
                  ),

ingrese la descripción de la imagen aquí

para obtener datos asincrónicos – uso – FutureBuilder

    @override
  Widget build(BuildContext context) {
    return FutureBuilder(
      builder: (context,snap)
        if(snap.hasData)
          return Expanded(
            child: GridView.count(
              shrinkWrap: true,
              childAspectRatio: 2,
              scrollDirection: Axis.vertical,
              crossAxisCount: 2,
              children: new List.generate(images.length, (index) 
                return buildImage(images[index], context, index);
              ,
              ).toList(),
            ),
          );

        
        return Center(child: CircularProgressIndicator())
      ,
      future: fetchSubCategoryContentlist(context, 20),
    );

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *