Arrangement و Alignment در Jetpack Compose

Arrangement و Alignment در Jetpack Compose
در این پست می‌خوانید:

در این مقاله به صورت ساده و روان تفاوت و نحوه استفاده از Arrangement و Alignment بررسی میکنیم 

در طراحی رابط کاربری با Jetpack Compose، کنترل نحوه‌ی چیدمان و فاصله‌گذاری بین کامپوننت‌ها اهمیت زیادی دارد. این دوتا سوال خیلی از مواقع مطرح می شود :

  • چگونه می‌توانم بین آیتم‌های یک Row یا Column فاصله‌ی دلخواه ایجاد کنم؟
  • اگر بخواهیم از spacer و padding برای فاصله گذاری استفاده کنیم که از modifier ها هستند پس کاربرد Alignment و Arrangement چیست ؟

به صورت نمونه می تونید در سایت استک هم این سوال رو مشاهده کنید

این مقاله با هدف پاسخ به همین پرسش ها  نوشته شده است.

 

بیان تفاوت Arrangement و Alignment

تفاوت Arrangement و Alignment

تیم Jetpack Compose تصمیم طراحی بسیار خوبی گرفته اند : آن‌ها برای کنترل فاصله در محور اصلی (Main Axis) و محور متقاطع (Cross Axis) از پارامترهایی با نام‌های متفاوت استفاده کرده‌اند. این جداسازی نام‌گذاری باعث خوانایی و درک بهتر کد می‌شود، اگرچه ممکن است در ابتدا کمی گیج‌کننده باشد — به‌خصوص اگر قبلاً با فریم‌ورک‌های رابط کاربری دیگر کار کرده باشید.

 

Arrangement چیست؟

Arrangement   کنترل فاصله‌گذاری در محور اصلی استفاده می‌شود:

  • در Row، پارامتر horizontalArrangement فاصله‌گذاری افقی بین آیتم‌ها را تعیین می‌کند.
  • در Column، پارامتر verticalArrangement فاصله‌گذاری عمودی را کنترل می‌کند.

محور اصلی (Main Axis) در :

Column محور اصلی به صورت عمودی است

Row محور اصلی به صورت افقی است .

 

Alignment چیست؟

Alignment برای کنترل نحوه‌ی قرارگیری آیتم‌ها در محور فرعی  استفاده می‌شود:

  • در Row، پارامتر verticalAlignment مکان آیتم‌ها در محور عمودی را مشخص می‌کند.
  • در Column، پارامتر horizontalAlignment موقعیت آیتم‌ها در محور افقی را تعیین می‌کند.

محور فرعی (Cross Axis)در :

Column محور فرعی به صورت افقی است .

Row محور فرعی به صورت عمودی است .

 

انواع Arrangement‌ های پیش‌فرض

شما می‌توانید پیاده‌سازی دلخواه خود را برای Arrangement بنویسید، اما Jetpack Compose چند نوع پرکاربرد را به‌صورت پیش‌فرض ارائه داده است:

Arrangement توضیح
Arrangement.Start آیتم‌ها را از ابتدای محور اصلی قرار می‌دهد.
Arrangement.End آیتم‌ها را در انتهای محور اصلی قرار می‌دهد.
Arrangement.Center آیتم‌ها را در مرکز محور اصلی قرار می‌دهد.
Arrangement.SpaceBetween اولین آیتم در ابتدا و آخرین در انتها قرار می‌گیرد، باقی‌مانده بین سایر آیتم‌ها به‌طور یکنواخت پخش می‌شود.
Arrangement.SpaceAround فضای مساوی در اطراف هر آیتم قرار می‌گیرد. فاصله‌ی بین آیتم‌ها دو برابر فاصله‌ی لبه‌ها خواهد بود.
Arrangement.SpaceEvenly فاصله‌ی یکسان بین همه آیتم‌ها و همچنین ابتدا و انتهای لیست قرار می‌گیرد. با SpaceAround متفاوت است چون فاصله‌ی لبه‌ها دقیقاً برابر با فاصله‌ی وسط است.

 

نکته‌ی مهم درباره‌ی اندازه‌ی Row و Column

به‌صورت پیش‌فرض، Row و Column فقط به اندازه‌ی محتوای داخلی‌شان فضا اشغال می‌کنند. این یعنی اگر شما از Arrangement.SpaceBetween استفاده کنید ولی فقط دو آیتم داشته باشید و هیچ فضای اضافی نداشته باشید، هیچ فاصله‌ای اعمال نمی‌شود.

برای اینکه Arrangement قابل مشاهده باشد، باید فضای کافی در اختیار Row یا Column قرار دهید. می‌توانید از Modifierهای زیر استفاده کنید:

  • Modifier.fillMaxWidth()
  • Modifier.fillMaxSize()
  • Modifier.height(100.dp)
  • Modifier.size(300.dp)

 

نتیجه‌گیری

شناخت دقیق تفاوت بین Arrangement و Alignment یکی از کلیدهای مهم در طراحی رابط کاربری با Jetpack Compose است. این دو ابزار قدرتمند به شما اجازه می‌دهند تا کنترل کاملی روی فاصله‌گذاری و نحوه‌ی چیدمان اجزا داشته باشید — چه در محور اصلی و چه در محور فرعی.

اگر تازه‌کار هستی و به‌تازگی با Compose آشنا شدی ، پیشنهاد می‌کنم با ترکیب‌های مختلف Arrangement و Alignment آزمایش کنی تا بهتر متوجه شون بشی .

از مسیر کد زدن لذت ببرید ، پایان 🍕

دیدگاه‌ها ۰
ارسال دیدگاه جدید