यह एक पूरक उत्तर है जिसमें वर्णित समाधानों के एक जोड़े के कार्यान्वयन को दिखाया गया है।
FractionallySizedBox
यदि आपके पास एक एकल विजेट है तो आप FractionallySizedBox
भरने के लिए उपलब्ध स्थान का एक प्रतिशत निर्दिष्ट करने के लिए एक विजेट का उपयोग कर सकते हैं । यहां हरा Container
उपलब्ध चौड़ाई का 70% और उपलब्ध ऊंचाई का 30% भरने के लिए निर्धारित है।
Widget myWidget() {
return FractionallySizedBox(
widthFactor: 0.7,
heightFactor: 0.3,
child: Container(
color: Colors.green,
),
);
}
विस्तारित
Expanded
विजेट एक विजेट उपलब्ध स्थान को भरने के लिए, क्षैतिज अगर यह एक पंक्ति में है, या खड़ी करता है, तो यह एक कॉलम में है की अनुमति देता है। आप flex
उन्हें वजन देने के लिए कई विजेट के साथ संपत्ति का उपयोग कर सकते हैं । यहाँ पर हरे रंग Container
की चौड़ाई 70% है और पीले रंग Container
की चौड़ाई का 30% है।
यदि आप इसे लंबवत करना चाहते हैं, तो बस इसके Row
साथ बदलें Column
।
Widget myWidget() {
return Row(
children: <Widget>[
Expanded(
flex: 7,
child: Container(
color: Colors.green,
),
),
Expanded(
flex: 3,
child: Container(
color: Colors.yellow,
),
),
],
);
}
पूरक कोड
यहाँ main.dart
आपके संदर्भ के लिए कोड है।
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text("FractionallySizedBox"),
),
body: myWidget(),
),
);
}
}
// replace with example code above
Widget myWidget() {
return ...
}