সংক্ষিপ্ত উত্তর
Start
, Center
, End
এবং Fill
দৃশ্য এর সংজ্ঞায়িত তার স্থান মধ্যে প্রান্তিককরণ ।
Expand
উপলব্ধ হলে এটি আরও স্থান দখল করে কিনা তা নির্ধারণ করে ।
তত্ত্ব
গঠন LayoutOptions
দুটি স্বতন্ত্র আচরণ নিয়ন্ত্রণ করে:
সারিবদ্ধতা: পিতামাতার দৃশ্যের মধ্যে দর্শনটি কীভাবে সংযুক্ত করা হয়?
Start
: উল্লম্ব সারিবদ্ধকরণের জন্য ভিউ শীর্ষে সরানো হয়। অনুভূমিক প্রান্তিককরণের জন্য এটি সাধারণত বাম হাতের অংশ। (তবে দ্রষ্টব্য, ডান থেকে বাম ভাষা সেটিং সহ ডিভাইসগুলিতে এটি অন্যদিকে যেমন ডানদিকে আবদ্ধ is
Center
: দৃশ্যটি কেন্দ্রিক।
End
: সাধারণত দৃশ্যটি নীচে বা ডানদিকে প্রান্তিক হয়। (ডান থেকে বাম ভাষাগুলিতে, অবশ্যই বামদিকে সারিবদ্ধ হয়েছে))
Fill
: এই সারিবদ্ধতা কিছুটা আলাদা। প্যারেন্ট ভিউয়ের পুরো আকার জুড়ে দৃশ্যটি প্রসারিত হবে।
তবে পিতামাতা যদি তার চেয়ে বড় না হয় তবে তার বাচ্চারা, আপনি এই সারিবদ্ধগুলির মধ্যে কোনও পার্থক্য দেখতে পাবেন না। প্রান্তিককরণ কেবল অতিরিক্ত স্থান উপলভ্য পিতামাতার দর্শনের জন্য গুরুত্বপূর্ণ।
সম্প্রসারণ: যদি উপাদান পাওয়া যায় তবে আরও বেশি জায়গা দখল করবে?
- প্রত্যয়
Expand
: যদি পিতামাতার দৃষ্টিভঙ্গিটি তার সমস্ত শিশুদের সম্মিলিত আকারের চেয়ে বড় হয়, অর্থাৎ অতিরিক্ত স্থান উপলব্ধ হয়, তবে স্থানটি প্রত্যয়টির সাথে শিশু দর্শনগুলির মধ্যে সমানুপাতিক। এই শিশুরা তাদের স্থান "দখল" করবে, তবে অগত্যা এটি "পূরণ" করবে না। নীচের উদাহরণে আমাদের এই আচরণের উপর নজর দেওয়া হবে।
- প্রত্যয় নেই: প্রত্যয়বিহীন শিশুরা
Expand
অতিরিক্ত স্থান পাওয়া গেলেও অতিরিক্ত স্থান পাবে না।
আবার, পিতামাতার দৃষ্টিভঙ্গি যদি তার বাচ্চাদের চেয়ে বড় না হয় তবে প্রসারিত প্রত্যয়টিও কোনও পার্থক্য করে না।
উদাহরণ
আটটি লেআউট বিকল্পের মধ্যে পার্থক্য দেখতে নীচের উদাহরণটি একবার দেখুন।
অ্যাপটিতে StackLayout
আটটি নেস্টেড সাদা বোতামগুলির সাথে একটি গা gray ় ধূসর রয়েছে , যার প্রতিটিটি তার উল্লম্ব বিন্যাস বিকল্প সহ লেবেলযুক্ত। যে কোনও একটি বোতামে ক্লিক করার সময়, এটি স্ট্যাক বিন্যাসে এর উল্লম্ব বিন্যাস বিকল্পটি নির্ধারণ করে। এইভাবে আমরা সহজেই পিতামাতার সাথে পৃথক পৃথক বিন্যাস বিকল্পের সাথে মতামতের কথোপকথনটি পরীক্ষা করতে পারি।
(কোডের শেষ কয়েকটি লাইনের অতিরিক্ত হলুদ বাক্স যুক্ত হয়েছে a আমরা কিছুক্ষণের মধ্যে এটিতে ফিরে আসব))
public static class App
{
static readonly StackLayout stackLayout = new StackLayout {
BackgroundColor = Color.Gray,
VerticalOptions = LayoutOptions.Start,
Spacing = 2,
Padding = 2,
};
public static Page GetMainPage()
{
AddButton("Start", LayoutOptions.Start);
AddButton("Center", LayoutOptions.Center);
AddButton("End", LayoutOptions.End);
AddButton("Fill", LayoutOptions.Fill);
AddButton("StartAndExpand", LayoutOptions.StartAndExpand);
AddButton("CenterAndExpand", LayoutOptions.CenterAndExpand);
AddButton("EndAndExpand", LayoutOptions.EndAndExpand);
AddButton("FillAndExpand", LayoutOptions.FillAndExpand);
return new NavigationPage(new ContentPage {
Content = stackLayout,
});
}
static void AddButton(string text, LayoutOptions verticalOptions)
{
stackLayout.Children.Add(new Button {
Text = text,
BackgroundColor = Color.White,
VerticalOptions = verticalOptions,
HeightRequest = 20,
Command = new Command(() => {
stackLayout.VerticalOptions = verticalOptions;
(stackLayout.ParentView as Page).Title = "StackLayout: " + text;
}),
});
stackLayout.Children.Add(new BoxView {
HeightRequest = 1,
Color = Color.Yellow,
});
}
}
নিম্নলিখিত স্ক্রিনশটগুলি আটটি বোতামের প্রত্যেকটিতে ক্লিক করার পরে ফলাফলটি দেখায়। আমরা নিম্নলিখিত পর্যবেক্ষণগুলি করি:
- যতক্ষণ পিতামাতারা
stackLayout
শক্ত থাকে ( Fill
পৃষ্ঠাটি নয়) ততক্ষণ প্রতিটিটির উল্লম্ব বিন্যাস বিকল্পটি Button
নগণ্য l
- উল্লম্ব লেআউট বিকল্পটি কেবল তখনই গুরুত্বপূর্ণ যদি
stackLayout
বড় (যেমন Fill
সারিবদ্ধ মাধ্যমে ) এবং পৃথক বোতামগুলির Expand
প্রত্যয় থাকে have
- অতিরিক্ত স্থানটি ঘটনাক্রমে
Expand
প্রত্যয়যুক্ত সমস্ত বোতামের মধ্যে সমানুপাতিক । এটি আরও পরিষ্কারভাবে দেখতে আমরা প্রতি দুটি প্রতিবেশী বোতামের মধ্যে হলুদ অনুভূমিক রেখা যুক্ত করেছি।
- তাদের অনুরোধ করা উচ্চতার চেয়ে বেশি জায়গাগুলিযুক্ত বোতামগুলি প্রয়োজনীয়ভাবে এটি "পূরণ" করে না। এই ক্ষেত্রে আসল আচরণটি তাদের প্রান্তিককরণ দ্বারা নিয়ন্ত্রিত হয়। উদাহরণস্বরূপ তারা হয় তাদের উপরের, কেন্দ্রের বা তাদের জায়গার বোতামে সারিবদ্ধ থাকে বা এটি পুরোপুরি পূরণ করে।
- সমস্ত বোতাম লেআউটের পুরো প্রস্থ জুড়ে বিস্তৃত, যেহেতু আমরা কেবলমাত্র পরিবর্তন করি
VerticalOptions
।
এখানে আপনি সংশ্লিষ্ট উচ্চ-রেজোলিউশনের স্ক্রিনশটগুলি পাবেন।