ঝাঁকুনি: বিস্তৃত বনাম নমনীয়


96

আমি উভয় Expandedএবং Flexibleউইজেট ব্যবহার করেছি এবং তারা একই কাজ করে বলে মনে হচ্ছে। আমি যে দুটি মিস করেছি তার মধ্যে কি কোনও পার্থক্য আছে?

উত্তর:


115
Scaffold(
  appBar: AppBar(),
  body: Column(
    children: <Widget>[
      Row(
        children: <Widget>[
          buildExpanded(),
          buildFlexible(),
        ],
      ),
      Row(
        children: <Widget>[
          buildExpanded(),
          buildExpanded(),
        ],
      ),
      Row(
        children: <Widget>[
          buildFlexible(),
          buildFlexible(),
        ],
      ),
    ],
  ),
);

এখানে চিত্র বর্ণনা লিখুন


4
নমনীয় কেবল প্রয়োজনীয় স্থান নেয়, এবং প্রসারিতটিকে flexফ্যাক্টরটিকে সম্মান করে সমস্ত উপলব্ধ স্থান নেয় । আরও তথ্যের জন্য উইজেটের ডক্সExpanded দেখুন ।
আলেকসন্দর

99

Expanded শুধুমাত্র একটি সংক্ষিপ্ত হাত Flexible

এইভাবে প্রসারিত ব্যবহার করে:

Expanded(
  child: Foo(),
);

এর সাথে কঠোর সমান:

Flexible(
  fit: FlexFit.tight,
  child: Foo(),
);

আপনি ব্যবহার করতে পারেন Flexibleউপর Expandedযখন আপনি একটি ভিন্ন চান fit, কিছু প্রতিক্রিয়াশীল লেআউট দরকারী।

FlexFit.tightএবং এর মধ্যে পার্থক্যটি FlexFit.looseহ'ল আলগাটি তার শিশুকে সর্বোচ্চ আকার ধারণ করতে দেয় যখন কড়া শিশুটিকে সমস্ত উপলব্ধ স্থান পূরণ করতে বাধ্য করে।


4
নেই Maximum sizeএবং Available spaceএখানে একই জিনিস মানে?
কপসঅনরোড

না, ম্যাক্সিমাইজ করে আমার বোঝার মতো কিছু ছিল যে একটি কলামের অভ্যন্তরে সর্বাধিক উচ্চতা সহ ফ্লেক্সিবল কনস্ট্রেইনডবক্সের সন্তানের মতো হওয়া
রামি রুসলেট

25
সহজ কথায়, Flexible.tightবাচ্চাদের উপলব্ধ পুরো জায়গা নিতে বাধ্য Flexible.looseকরবে এবং বাচ্চাদের তারা যা চায় তা করতে দেবে। কিছু বাচ্চারা তাদের জায়গা কী হবে তা নির্ভর করে পুরো জায়গা ধরে নিতে পারে এবং কিছু নাও পারে।
কপসঅনরোড

30

নমনীয়তার অধীনে উইজেটগুলি ডিফল্টভাবে Wrap_CONTENT হয় যদিও আপনি প্যারামিটার ফিট ব্যবহার করে এটি পরিবর্তন করতে পারেন।

অধীনে উইজেট সম্প্রসারিত হয় MATCH_PARENT আপনি ব্যবহার তা পরিবর্তন করতে পারেন আনমন


4
অ্যান্ড্রয়েড বিকাশকারীদের জন্য দুর্দান্ত ব্যাখ্যা!
সুইফটিউইফট


16

সারি এবং কলামগুলিতে উইজেটগুলির আকার পরিবর্তন করতে আপনি নমনীয় ব্যবহার করতে পারেন । এটি মূলত তাদের পিতামাত উইজেটের সাথে সম্পর্ক রেখে বিভিন্ন শিশু উইজেটের স্থান সামঞ্জস্য করতে ব্যবহৃত হয়।

এদিকে, সারি এবং কলামের বাচ্চাদের কাছে প্রেরিত সীমাবদ্ধতাগুলি প্রসারিত পরিবর্তনগুলি ; এটি সেখানে উপলব্ধ স্থানগুলি পূরণ করতে সহায়তা করে। অতএব, আপনি যখন আপনার বাচ্চাকে একটি প্রসারিত উইজেটে মুড়িয়ে রাখেন তখন এটি খালি জায়গাগুলি পূরণ করে।

লোকদের সাহায্যের জন্য কেবল ফ্লটারের অফিসিয়াল ইউটিউব চ্যানেল থেকে এই ভিডিওগুলি সরবরাহ করা , যারা আসন্ন ভবিষ্যতে এটি সন্ধান করতে পারে ...

  1. প্রসারিত:

  2. নমনীয়:


0

প্রসারিত () এর সাথে ফ্লেক্সিবল () ছাড়া আর কিছুই নয়

Flexible (fit: FlexFit.tight) = Expanded()

কিন্তু, নমনীয়ভাবে fit :FlexFit.looseডিফল্টরূপে ব্যবহার করে।

FlexFit.tight = যতটা সম্ভব জায়গা নিয়ে পিতামাতার সাথে আঁটসাঁটে ফিট রাখতে চায়।

ফ্লেক্সফিট.লুজ = নিজের পক্ষে যথাসম্ভব অল্প জায়গা নিয়ে পিতামাতার মধ্যে loose িলে .ালা ফিট করতে চায়।


0

Flexibleপরিবর্তে আপনি যদি ব্যবহার করেন তবে তফাতটি Expandedহ'ল Flexibleতার সন্তানের Flexibleনিজের চেয়ে তার প্রস্থের সমান বা ছোট প্রস্থ থাকতে দেয়, যখন Expandedতার শিশুটিকে যথাযথ একই প্রস্থের জন্য বাধ্য করে Expanded। তবে উভয় Expandedএবং Flexibleনিজের আকারের আকার দেওয়ার সময় তাদের বাচ্চার প্রস্থকে উপেক্ষা করুন।

Row(children:[
  Flexible(
    child: Container(color: Colors.red, child: Text('This is a very long text that won’t fit the line.'))),
  Flexible(
    child: Container(color: Colors.green, child: Text(‘Goodbye!’))),
  ]
)

এখানে চিত্র বর্ণনা লিখুন

দ্রষ্টব্য : এর অর্থ এই যে Rowআকারে আনুপাতিকভাবে শিশুদের প্রসারিত করা অসম্ভব । সারিটি হ'ল সন্তানের প্রস্থটি ব্যবহার করে Expandedবা আপনি যখন ব্যবহার করেন বা ব্যবহার করেন তখন তা একেবারেই উপেক্ষা করে Flexible

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.