آموزش برنامه نویسی اندروید قسمت پنجم

ستاره مقاری 1395/1/14 3317

باز هم سلام مجدد خدمت دوستان.

انواع layout ها در اندروید:

با مفهوم layout آشنا شدیم حالا میخوام دو نوع layout مهم و کاربردی رو بهتون توضیح بدم.

Linear Layout

این layout به صورت پیشفرض وقتی یک صفحه جدید در intellij میسازید هست. بصورت زیر:

آموزش برنامه نویسی اندروید

که همونطور که میبینید و توضیحات فایل­های xml رو بهتون داده بودم این تگ LinearLayout الان شامل یک TextView هست.

اما خاصیت این layout چی هست. برید به بخش Design  صفحتون و چندتا ابزار با Drag & Drop بندازید توی صفحه.

اگه دقت کنید میبینید هرچقدرم تلاش کنید نمیتونید دوتا دکمه رو کنار هم بذارید. و همه ابزارهاتون توی ردیفهایی زیر هم قرار میگیرن:

آموزش برنامه نویسی اندروید

خب این خاصیت linear layout هست. حالا هر ابزاری گذاشتیدو برداریید و بعد برید توی بخش Text و حالا این تغییر رو توی تگ linear layout اتون بدید:

آموزش برنامه نویسی اندروید

یعنی خاصیت orientation اون رو به vertical تغییر بدید.

حالا دوباره برید داخل بخش Design و دکمه(یا هر ابزاری) بندازید توی صفحه. اندفعه میبینید در بخشهای بالا، وسط و پایین صفحه میتونید دکمه بذارید و دکمه­هاتون توی یه راستای افقی قرار میگیرن.

از طرفی نمیتونید دوا دکمه رو در راستای عمودی زیر هم بذارید.

آموزش برنامه نویسی اندروید

که این هم از خاصیت LinearLayout افقی هست.

خب linearlayout عمودی کاربرد بیشتری داره. برگردونیدش به این حالت و سه تا دکمه توی صفحه بذارید. میخوایم با یک سری خاصیت این layout اشنا شید.

قبل از اون به این خط نگاه کنید:

xmlns:android="http://schemas.android.com/apk/res/android"

حواستون باشه همیشه layout اصلی صفحتون یعنی اولین layout باید این صفت رو بهش بدید تا فعال بشه صفحه براتون

 

یکی از دکمه هاتونو انتخاب کنید. مثلا میخوایم توی کد بگیم که دکممون میخوایم وسط راستای عمودی قرار بگیره این صفتو بهش اضافه میکنیم:

android:layout_gravity="center"

که همین gravity میتونه به سمت راست یا چپ صفحه هم تعلق بگیره.

 

Relative Layout

این Layout کاربرد بسیار زیادی داره و خیلی مهم هست. ابزارهایی که گذاشتیدو پاک کنید. وارد Text بشید و layout خودتونو به RelativeLayout تغییر بدید

آموزش برنامه نویسی اندروید

حالا برید به بخش دیزاین و سعی کنید دکمه توی صفحه Drag کنید. حالا میبینید که هرجایی میتونید بذارید ابزارهاتونو

آموزش برنامه نویسی اندروید

حالا با attribute های مخصوص این layout اشنا میشیم. به بخش Text برگردید. مثلا اگر بخوام دکمه اولی بالای layout و در وسط قراربگیره طبق زیر کدشو میزنیم:

<Button

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="New Button"

        android:id="@+id/button"

        android:layout_alignParentTop="true"

        android:layout_centerHorizontal="true"

        />

پس هروقت بخوایم ابزارمون به یکی از لبه های بالا، پایین، راست یا چپ RelativeLayout امون بچسبه از یکی ازدستورات زیر استفاده میکنیم:

layout_alignParentTop,

layout_alignParentBottom

layout_alignParentRight,

layout_alignParentLeft,

 

اگر بخوایم ابزارمون وسط راستای عمودی یا افقی که قرار داره توش، بیفته، یا اینکه کاملا وسط RelativeLayout امون قرار بگیره از یکی از صفتهای زیر استفاده میکنیم و اون رو برابر true قرار میدیم

 

layout_centerVertical,

layout_centerHorizontal,

layout_centerInParent

 

 

 

که البته حواسمون باید باشه بعضی از این صفتها باهم تداخل دارن مثلا اگر بگید layout_alignParentTop,

دیگه با استفادا از layout_centerInParent نمیتونید ابزارتونو وسط layout بیارید. چون نمیتونه هم به بالای layout قفل شه هم وسطش قرار بگیره.

خاصیت بعدی RelativeLayout این است که با استفاده از آن میتوانید ابزارها را نصبت به هم مکان­دهی بکنید. یعنی مثلا بگید دکمه1 سمت راست دکمه2 قرار بگیره. این برای دیزاین نرم­افزار خیلی بدرد میخوره چون که اگر برای مکان دادن به ابزارها از مختصات مثلا بخواید استفاده کنید خب توی گوشی­های مختلف دیزاینتون بهم میخوره

اما با دادن رابطه نسبی بین ابزارها میتونید یک چیدمان ثابت توی گوشی­های موبایل داشته باشید داشته باشید

به این ترتیب برای نسبت دادن موقعیت یک ابزار نسبت به ابزار دیگه از موارد زیر استفاده میشه

layout_toLeftOf,

layout_toRightOf,

layout_above,

layout_below

و توجه کنید این attribute چون نسبی به یک ابزار دیگه هست ازتون id ابزاری که دارید بهش ارجاع میدید رو هم میخواد. مثلا به ترتیب زیر دکمه دوم ()button1 روسمت راست دکمه اول قرار میدم (button)

آموزش برنامه نویسی اندروید

و اخرین مورد قرار دادن ابزاری در راستای لبه ی ابزار دیگه است. مثلا فک کنید میخواهید دکمه سوم(button2 ) در زیر دکمه دوم (button1) و در امتداد سمت راستش قرار بگیره. کد اون بصورت زیر است:

آموزش برنامه نویسی اندروید

پس به این ترتیب از روابط زیر میتوانید استفاده کنیدکه مانند روابط دسته قبل از شما id ابزاری که بهش ارجاع میدید رو هم میخواد:

layout_alignLeft,

layout_alignRight,

layout_alignTop,

layout_alignBottom

قسمت بعدی قسمت قبلی