Home > Blockchain >  how to add parallel components in flutter
how to add parallel components in flutter

Time:01-24

I'm designing a grocery app. I want to add a small green box container in front of the search bar parallelly. (as Image showing) here's my code. in the code, I have added a search bar in a separate widget at the end of the code. can someone please suggest me a way to do this? to where I add this box in my code.

image

home.dart

import 'package:flutter/material.dart';

class HomePage extends StatefulWidget {
  @override
  _HomePageState createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Color(0xffEDEFF4),
      bottomNavigationBar: BottomNavigationBar(

          items: [
        BottomNavigationBarItem(
          icon:  Icon(Icons.home,color: Colors.green ),
          label: 'Home',
          backgroundColor: Colors.white,

        ),

        BottomNavigationBarItem(
          icon: Icon(Icons.person,color: Colors.grey),
          label: 'Profile',
           // backgroundColor:Colors.blue,
            ),
        BottomNavigationBarItem(
          icon: Icon(Icons.shopping_cart,color: Colors.grey),
          label: 'cart',
           // backgroundColor:Colors.blue,
            ),


            BottomNavigationBarItem(
              icon: Icon(Icons.notifications ,color: Colors.grey),
              label: 'bell',
              // backgroundColor:Colors.blue,
            ),

            BottomNavigationBarItem(
              icon: Icon( Icons.more_horiz, color: Colors.grey),
              label: 'bell',
              // backgroundColor:Colors.blue,
            ),

      ]),


      body: ListView(
        children: [
      
          buildSearchInput(), // search box


          Padding(
            padding: const EdgeInsets.only(top: 40, left: 20, right: 20),
            child: Column(
              children: [
                SizedBox(
                  height: kToolbarHeight,
                  child: ListView(
                    scrollDirection: Axis.horizontal,
                    children: List.generate(4, (index) => Text("item $index")),
                  ),
                ),

              ],
            ),
          ),


          Stack(
            children: [

              Padding(
                  padding: const EdgeInsets.fromLTRB(0, 20, 10, 0),
                  child: Container(
                      decoration: BoxDecoration(
                        borderRadius: BorderRadius.circular(20.0),
                        color: Color(0xffFFFCEE),
                      ),
                      height: 180,
                      width: 380,
                      child: Column(
                        children: const [
                          Padding(
                            padding: EdgeInsets.fromLTRB(0, 20, 180, 10),
                            child: Text(
                              "FRUIT AND BERRIES",
                              style: TextStyle(
                                  fontFamily:'Roboto',
                                  fontSize: 10,
                                  color: Colors.lightGreen,
                                  fontWeight: FontWeight.w700),
                            ),
                          ),
                          Padding(
                            padding: EdgeInsets.fromLTRB(0, 0, 180, 10),
                            child: Text(
                              "Tangerine",
                              style: TextStyle(
                                  fontFamily:'Roboto',
                                  fontSize: 22,
                                  color: Colors.black,
                                  fontWeight: FontWeight.w700),
                            ),
                          ),
                          Padding(
                            padding: EdgeInsets.fromLTRB(0, 0, 220, 10),
                            child: Text(
                              "Rs.0.90/kg",
                              style: TextStyle(
                                  fontFamily:'Roboto',
                                  fontSize: 12,
                                  color: Colors.grey,
                                  fontWeight: FontWeight.w700),
                            ),
                          ),
                        ],
                      )
                  )
              ),
              const Padding(
                padding: EdgeInsets.fromLTRB(120, 0, 40, 0),
                child: Image(
                  image: AssetImage("assets/images/banana.png"),
                ),
              ),
            ],
          ),
          Stack(
            children: [
              Padding(
                  padding: const EdgeInsets.fromLTRB(0, 20, 10, 0),
                  child: Container(
                      decoration: BoxDecoration(
                        borderRadius: BorderRadius.circular(20.0),
                        color: Color(0xffFFFCEE),
                      ),
                      height: 180,
                      width: 380,

                      child: Column(
                        children: const [
                          Padding(
                            padding: EdgeInsets.fromLTRB(0, 20, 180, 10),
                            child: Text(
                              "FRUIT AND BERRIES",
                              style: TextStyle(
                                  fontFamily:'Roboto',
                                  fontSize: 10,
                                  color: Colors.lightGreen,
                                  fontWeight: FontWeight.w700),
                            ),
                          ),
                          Padding(
                            padding: EdgeInsets.fromLTRB(0, 0, 180, 10),
                            child: Text(
                              "Tangerine",
                              style: TextStyle(
                                  fontFamily:'Roboto',
                                  fontSize: 22,
                                  color: Colors.black,
                                  fontWeight: FontWeight.w700),
                            ),
                          ),
                          Padding(
                            padding: EdgeInsets.fromLTRB(0, 0, 220, 10),
                            child: Text(
                              "Rs.0.90/kg",
                              style: TextStyle(
                                  fontFamily:'Roboto',
                                  fontSize: 10,
                                  color: Colors.grey,
                                  fontWeight: FontWeight.w700),
                            ),
                          ),
                        ],
                      )

                  )),
              const Padding(
                padding: EdgeInsets.fromLTRB(120, 0, 40, 0),
                child: Image(
                  image: AssetImage("assets/images/orange.png"),
                ),
              ),
            ],
          ),
          Stack(
            children: [
              Padding(
                  padding: const EdgeInsets.fromLTRB(0, 20, 10, 0),
                  child: Container(
                      decoration: BoxDecoration(
                        borderRadius: BorderRadius.circular(20.0),
                        color: Color(0xffE2F3DF),
                      ),
                      height: 180,
                      width: 380,
                      child: Column(
                        children: const [
                          Padding(
                            padding: EdgeInsets.fromLTRB(0, 20, 180, 10),
                            child: Text(
                              "FRUIT AND BERRIES",
                              style: TextStyle(
                                  fontFamily:'Roboto',
                                  fontSize: 10,
                                  color: Colors.lightGreen,
                                  fontWeight: FontWeight.w700),
                            ),
                          ),
                          Padding(
                            padding: EdgeInsets.fromLTRB(0, 0, 180, 10),
                            child: Text(
                              "Tangerine",
                              style: TextStyle(
                                  fontFamily:'Roboto',
                                  fontSize: 22,
                                  color: Colors.black,
                                  fontWeight: FontWeight.w700),
                            ),
                          ),
                          Padding(
                            padding: EdgeInsets.fromLTRB(0, 0, 220, 10),
                            child: Text(
                              "Rs.0.90/kg",
                              style: TextStyle(
                                  fontFamily:'Roboto',
                                  fontSize: 10,
                                  color: Colors.grey,
                                  fontWeight: FontWeight.w700),
                            ),
                          ),
                        ],
                      )
                  )),
              const Padding(
                padding: EdgeInsets.fromLTRB(100, 0, 40, 0),
                child: Image(
                  image: AssetImage("assets/images/kiwi.png"),
                 // height:200,
                ),
              ),
            ],
          ),
        ],
      ),
    );
  }



  Widget buildSearchInput() => Padding(
    padding: const EdgeInsets.fromLTRB(150, 20, 20, 0),
    child: Container(
          decoration: BoxDecoration(
              color: Colors.white, borderRadius: BorderRadius.circular(14)),
          child: Padding(
            padding: const EdgeInsets.only(left: 20.0, right: 20),
            child: Row(
              children: [
                Icon(
                  Icons.search,
                  size: 30,
                  color: Colors.grey.shade400,
                ),
                Flexible(
                  child: TextField(
                    decoration: InputDecoration(border: InputBorder.none),
                  ),
                ),

              ],


            ),
          ),
        ),
  );



}

CodePudding user response:

I know how to decorate that box. want to know where I want to place this to place in front of the search bar

Stack(
    
                     children: [
    
                   Padding(
                   padding: const EdgeInsets.fromLTRB(10, 0, 0, 0), child: Container(
                decoration: BoxDecoration(
                  borderRadius: BorderRadius.circular(20.0),
                  color: Color(0xffCAEC93),
                ),
                         height: 60,
                         width: 60,
                   )
              ), ],

CodePudding user response:

this is how I arranged my code. still, I was unable to get both the green box and search bar parallel. how can I arrange this properly?

enter image description here

body: ListView(

              children: [
    
                      Row(
                        children: [
    
                          Padding(
                              padding: const EdgeInsets.fromLTRB(20, 50, 0, 0), child: Container(
                            decoration: BoxDecoration(
                              borderRadius: BorderRadius.circular(20.0),
                              color: Color(0xffCAEC93),
                            ),
                            height: 60,
                            width: 60,
                          )
                          ),
    
                        ],
),
    
                      ),
    
              buildSearchInput(),
    
    
    
     Widget buildSearchInput() => Padding(
        padding: const EdgeInsets.fromLTRB(150, 0, 20, 0),
        child: Container(
              decoration: BoxDecoration(
                  color: Colors.white, borderRadius: BorderRadius.circular(14)),
              child: Padding(
                padding: const EdgeInsets.only(left: 20.0, right: 20),
                child: Row(
                  children: [
                    Icon(
                      Icons.search,
                      size: 30,
                      color: Colors.grey.shade400,
                    ),
                    
                    Flexible(
                      child: TextField(
                        decoration: InputDecoration(border: InputBorder.none),
    
                      ),
                    ),
                  ],
                ),
              ),
            ),
      );

CodePudding user response:

Try this, You need to place your buildSearchInput() inside Row

 return ListView(
      children: [
        Row(
          mainAxisAlignment: MainAxisAlignment.spaceAround, // Try play with this
          children: [
            Padding(
                padding: const EdgeInsets.fromLTRB(20, 50, 0, 0),
                child: Container(
                  decoration: BoxDecoration(
                    borderRadius: BorderRadius.circular(20.0),
                    color: Color(0xffCAEC93),
                  ),
                  height: 60,
                  width: 60,
                )),
            Expanded(child:buildSearchInput()), // Here inside the row
          ],
        ),
        
        
        /// Other widgets...
      ],
    );
  •  Tags:  
  • Related