لی اوت در اندروید، بخش ۱ : مفاهیم اولیه

این مقاله به همراه دیگر مقالات این مجموعه ۱۶ قسمتی، بر اساس آموزش ویدیویی در pluralsight به نام Android Fundamental : Layout تهیه شده است. تاریخ تولید این دوره ۲۰۱۹ است.
این مقالات صرفا برگردان فارسی نیست، تجربیات نگارنده در کنار تعبیرهای قابل درک فارسی، وجه تمایز این مقاله از نوشته های مشابه است. امیدوارم مفید باشد.

لی اوت در اندروید ۱ : مفاهیم اولیه (در حال خواندن این مقاله هستید)
لی اوت در اندروید ۲ : آشنایی با اتریبیوت های width و height
لی اوت در اندروید ۳ : آشنایی با اتریبیوت های margin و padding
لی اوت در اندروید ۴ : آشنایی با اتریبیوت gravity
لی اوت در اندروید ۵ : آشنایی با لی اوت های پایه
لی اوت در اندروید ۶ : آشنایی با LinearLayout
لی اوت در اندروید ۷ : اتریبیوت weight
لی اوت در اندروید ۸ : آشنایی با FrameLayout
لی اوت در اندروید ۹ : آشنایی با RelativeLayout
لی اوت در اندروید ۱۰: آشنایی با CoordinateLayout
لی اوت در اندروید ۱۱ : آشنایی با ConstraintLayout
لی اوت در اندروید ۱۲ : آشنایی با Layout Inspector
لی اوت در اندروید ۱۳ : بهینه سازی رابط کاربری
لی اوت در اندروید ۱۴ : استفاده از تگ include
لی اوت در اندروید ۱۵ : استفاده از تگ merge
لی اوت در اندروید ۱۶ : استفاده از ViewStub



فرض من این است که خواننده با برنامه نویسی اپلیکیشن اندرویدی توسط جاوا یا کاتلین آشناست. برای راحتی کار در ادامه فرض می‌کنیم برنامه‌نویسی اپلیکیشن دو بخش دارد:

- سمت کد (کاتلین یا جاوا)
- سمت ویو ( کدهای xml یا کامپوننت های ویژوال ادیتور در اندروید استودیو).

این آموزش بیشتر در مورد سمت ویو است که حاوی لی اوت و اجزای سازنده صفحه است.(مثل دکمه یا متن یا تصویر)

در این مجموعه مقالات، از برگردان فارسی بسیاری از اصطلاحات پرهیز شده و به جای آن خود کلمه اصلی به شکل فارسی نوشته شده است؛ مثل ویو (view) یا لی اوت(layout). بنظرم این روشِ آموزش، کاربردی‌تر و کم خطاتر خواهد بود.

در این مجموعه مقالات، المان یا ویو را برای هر کامپوننتی که به صفحه اضافه میکنیم استفاده کرده ایم؛ مثل TextView یا LinearLayout.

چایلد(child)ها همان فرزندان یا زیرمجموعه‌های یک ویو هستند.

رابط کاربری یا UI در حقیقت یک رابط برای کنش‌های کاربر است.

مثلا تصویر زیر یک صفحه‌ی لاگین است که یک «رابط کاربری» نام دارد.

یک رابط کاربری حاوی المان های مختلف مثل دکمه و المان ورودی متن
یک رابط کاربری حاوی المان های مختلف مثل دکمه و المان ورودی متن

رابط کاربری از بخش های مختلفی به نام کامپوننت ها تشکیل شده است.
بخش اصلی و پایه ای این کامپوننت ها، Root Container است.

لی اوت در بردارنده کل صفحه به همراه تمامی المان ها یا کامپوننت هاست
لی اوت در بردارنده کل صفحه به همراه تمامی المان ها یا کامپوننت هاست

به این root container، لی اوت هم میگویند.

وظیفه لی اوت این است که کاپوننت های دیگر را به عنوان چایلد درخود جای دهد.
مثلا برای ورودی نام کاربری و پسورد از EditText استفاده کردیم.
برای نمایش متن از TextView استفاده کردیم.
همچنین دو Button هم داریم.

همچنین در اندروید میتوانیم nested layout داشته باشیم. یعنی یک لی اوت می‌تواند زیر مجموعه یا چایلد یک لی اوت دیگر باشد.

تعریف لی اوت میتواند اینچنین باشد:

ساختاریست که اجزاء رابط کاربری در آن تعریف میشود.

به کامپوننت‌های موجود در صفحه «ویو» هم میگویند، اما ویو و لی اوت چطور به هم مرتبط هستند.در تصویر زیر سلسله مراتبی که در ویو وجود دارد را میبینید.

یک کلاس جاوا به نام View داریم که base است.
کلاس View چندین subclass دارد.مثل TextView و Button و...خیلی چیزهای دیگر. در اندروید به این مدل آبجکت های ویو widget هم میگویند.
همچنین ویو میتواند ساب کلس دیگری به نام ViewGroup یا همان لی اوت داشته باشد.

ما قرار است در این مقالات در مورد همین بخش از ویو صحبت کنیم.
در مقاله بعدی، ابتدا به شکل کلی با یکی از لی اوت ها و اتریبیوت های معروف آشنا می‌شویم و در ادامه به شکلی جزئی به لی اوت ها می‌پردازیم.