Flutter এ Container, Row, এবং Column হলো মৌলিক Widget যা অ্যাপের UI তৈরিতে বহুল ব্যবহৃত হয়। এগুলো ব্যবহার করে বিভিন্ন লেআউট এবং স্ট্রাকচার তৈরি করা যায়। নিচে প্রতিটি Widget এর ব্যবহার এবং উদাহরণ বিস্তারিতভাবে আলোচনা করা হলো।
১. Container Widget:
- Container একটি বহুমুখী Widget যা UI উপাদানগুলোকে লেআউট এবং স্টাইলিং করার জন্য ব্যবহৃত হয়। এটি মূলত একটি বক্স তৈরি করে যেখানে আপনি বিভিন্ন Widget রাখতে পারেন এবং বিভিন্ন স্টাইল অ্যাপ্লাই করতে পারেন।
Containerএ আপনি padding, margin, alignment, decoration, এবং size সেট করতে পারেন।
Container এর উদাহরণ:
Container(
width: 200,
height: 100,
margin: EdgeInsets.all(10),
padding: EdgeInsets.all(20),
alignment: Alignment.center,
decoration: BoxDecoration(
color: Colors.blue,
borderRadius: BorderRadius.circular(10),
),
child: Text(
'Hello, Container!',
style: TextStyle(color: Colors.white),
),
)
- এখানে একটি
Containerতৈরি করা হয়েছে যার প্রস্থ এবং উচ্চতা নির্ধারিত। marginএবংpaddingসেট করা হয়েছে।alignmentদ্বারা টেক্সটকে মাঝখানে রাখা হয়েছে।decorationএর মাধ্যমে ব্যাকগ্রাউন্ড কালার এবং বর্ডার রেডিয়াস সেট করা হয়েছে।
২. Row Widget:
- Row Widget ব্যবহার করে একই লাইনে (horizontally) একাধিক Widget সাজানো যায়। এটি লম্বালম্বিভাবে (Horizontally) উপাদানগুলোকে প্লেস করে।
RowWidget এরchildrenপ্রপার্টিতে একাধিক Widget প্রদান করা যায়। আপনিmainAxisAlignmentএবংcrossAxisAlignmentপ্রপার্টি ব্যবহার করে Row এর মধ্যে Widget গুলোর অবস্থান নিয়ন্ত্রণ করতে পারেন।
Row এর উদাহরণ:
Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Icon(Icons.star, color: Colors.yellow),
Text('Row Item 1'),
ElevatedButton(onPressed: () {}, child: Text('Button')),
],
)
mainAxisAlignmentব্যবহার করে Row এর মধ্যে উপাদানগুলোকে সমান দূরত্বে (spaceEvenly) রাখা হয়েছে।crossAxisAlignmentব্যবহার করে সব Widget এর মাঝখান বরাবর স্থাপন করা হয়েছে।Rowএর মধ্যে একটিIcon, একটিTextএবং একটিElevatedButtonরাখা হয়েছে।
৩. Column Widget:
- Column Widget ব্যবহার করে উপরে থেকে নিচে (vertically) একাধিক Widget সাজানো যায়। এটি উপাদানগুলোকে উল্লম্বভাবে (Vertically) প্লেস করে।
ColumnWidget এরchildrenপ্রপার্টিতে একাধিক Widget প্রদান করা যায় এবংmainAxisAlignmentএবংcrossAxisAlignmentব্যবহার করে Widget গুলোর অবস্থান নিয়ন্ত্রণ করা যায়।
Column এর উদাহরণ:
Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text('Column Item 1'),
SizedBox(height: 20),
Text('Column Item 2'),
ElevatedButton(onPressed: () {}, child: Text('Click Me')),
],
)
mainAxisAlignmentব্যবহার করেColumnএর মধ্যে Widget গুলোকে উল্লম্বভাবে মাঝখানে রাখা হয়েছে।crossAxisAlignmentব্যবহার করে উপাদানগুলোকে বাম দিক থেকে (start) শুরু করে রাখা হয়েছে।SizedBoxব্যবহার করে উপাদানগুলোর মধ্যে স্পেস তৈরি করা হয়েছে।Columnএর মধ্যে দুটিTextএবং একটিElevatedButtonরাখা হয়েছে।
Containers, Rows, এবং Columns একসাথে ব্যবহার করা:
- Container একটি বক্স বা ঘের তৈরি করে, যেখানে আপনি
RowএবংColumnব্যবহার করে বিভিন্ন উপাদান সাজাতে পারেন। RowএবংColumnএকই সাথে ব্যবহার করে একটি জটিল লেআউট তৈরি করা যায়।
উদাহরণ:
Container(
padding: EdgeInsets.all(20),
decoration: BoxDecoration(
color: Colors.grey[300],
borderRadius: BorderRadius.circular(10),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text('Item 1'),
Icon(Icons.star, color: Colors.yellow),
],
),
SizedBox(height: 20),
Text('Another item below the row'),
ElevatedButton(onPressed: () {}, child: Text('Press Me')),
],
),
)
- এখানে একটি
Containerএর মধ্যে একটিColumnরাখা হয়েছে, যেখানে প্রথমে একটিRowএবং পরে অন্যান্য উপাদান রয়েছে। RowএTextএবংIconরাখা হয়েছে, যা এক লাইনে (Horizontally) প্লেস করা হয়েছে।ColumnএSizedBoxব্যবহার করে দুই উপাদানের মধ্যে স্পেস তৈরি করা হয়েছে।- শেষে একটি
ElevatedButtonরাখা হয়েছে।
সারাংশ:
- Container: একক UI উপাদান ঘের এবং স্টাইলিং করার জন্য ব্যবহৃত হয়।
- Row: একই লাইনে (Horizontally) একাধিক Widget সাজাতে ব্যবহৃত হয়।
- Column: উপরে থেকে নিচে (Vertically) একাধিক Widget সাজাতে ব্যবহৃত হয়।
- Containers, Rows, এবং Columns একত্রে ব্যবহার করে জটিল এবং রেসপন্সিভ UI লেআউট তৈরি করা যায়।
Content added By
Read more