2 تصاویر

درباره این فایل

یکی از Layout های اندروید که برای چیده مان المان ها یا ویجت ها، میتوانیم از آن استفاده کنیم RelativeLayout میباشد و همانطور که از اسم آن مشخص میباشد، بطور نسبی ویجت ها را میتوانیم با طراز بندی های خاصی بچینیم.

در RelativeLayout میتوانید با استفاده از ویژگی های above,below,left,right تعیین کنید که ویجت ها به چه صورتی کنار هم قرار بگیرند.

نکته: RelativeLayout بسیار قابل انعطاف میباشد و میتوان بسیار راحت ویجت ها را با قاعده های آن در صفحه بطور ترو تمیز چید.

هر کدام از آیتم های بالا دارای اصول و قاعده های مربوط به خود میباشند که میبایستی تمامی آنها را یادگرفته و بتوانیم تشخیص دهیم در چه زمانی از کدام Layout استفاده نماییم

 

روش تعریف RelativeLayout در اندروید:

برای تعریف کردن RelativeLayout میبایستی که تگ آن را تعریف نماییم.


 

<RelativeLayout
android:layout_width="fill_parent"

android:layout_height="wrap_content">

پس از تعریف، بایستی المان را در داخل این Viewgroup و نسبت های مربوطه را برای هرکدام از ویجت ها قرار داد.

قرار دادن خصوصیت Id:

Id یکی از مهمترین ویژگی های هر Layout یا ویجت میباشد که باید به آنها نسبت دهیم تا بتوانیم در قسمت Layout و اکتیویتی به آنها دستیابی پیدا کنیم و عملکرد هر کدام را تعریف نماییم.

طریقه تعریف Id:

{xtypo_code}android:id="@+id/name"

بعد از تعریف کردن id مربوطه، name یک مقدار رشته ای برای آن در فایل R ایجاد میکند و از این طریق میتوان به آنها دسترسی پیدا کرد.

خصوصیات RelativeLayout:

android:layout_above : این خصوصیت تعیین میکند که این ویجت در بالای کدام view یا ویجت دیگر قرار بگیرد.

android:layout_below : این خصوصیت تعیین میکند که این ویجت در پایین کدام view یا ویجت قرار بگیرد.

android:layout_centerHorizontal : این خصوصیت تعیین میکند که این view یا ویجت بطور افقی وسط چین شود.

android:layout_centerVertical : این خصوصیت تعیین میکند که این view یا ویجت بطور عمودی وسط چین شود.

android:layout_centerInParent : این خصوصیت تعیین میکند که این view یا ویجت، بطور عمودی و افقی وسط چین شود و دقیقا مشابه استفاده از دو ویژگی centerHorizontal و centerVertical میباشد.

android:layout_toLeftOf : این خصوصیت تعیین میکند که این view یا ویجت سمت چپ کدام view باشد.

android:layout_toRightOf: این خصوصیت تعیین میکند که این view یا ویجت سمت راست کدام view باشد.

android:layout_alignParentRight : این خصوصیت تعیین میکند که این view یا ویجت سمت راست والد خود باشد.

Margin :

Margin برای ایجاد کردن فاصله بین View ها از طرف خارج خود میباشد یا بطور ساده تر میتوان گفت بین ویجت ها از جهت های بالا، پایین، راست و چپ فاصله ایجاد میکند و به هر اندازه که نیاز باشد، میتوان سایز های مورد نظر خود را به آن اختصاص داد.

 

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

ابتدا یک پروژه جدید اندروید را ایجاد کنید.

بر روی پوشه res/layout راست کلیک کنید و سپس گزینه Android xml file را انتخاب کنید و یک اسم برای Layout خود انتخاب کنید.

 

و یا بصورت افقی :

 

<RelativeLayout 

android:layout_width="fill_parent"

android:layout_height="wrap_content">

 

<EditText android:layout_height="wrap_content" android:text="Email" />

 

<TextView android:layout_height="wrap_content" android:layout_below="@id/label" />

<Button android:layout_height="wrap_content" android:layout_below="@id/inputEmail"

android:layout_alignParentLeft="true" android:layout_marginRight="10px"

android:text="Login" />

 

<Button android:layout_toRightOf="@id/btnLogin"

android:layout_alignTop="@id/btnLogin" android:text="Cancel" />

 

<Button android:layout_alignParentBottom="true" android:text="Register new Account"

android:layout_centerHorizontal="true"/>

 

 

خروجی

ارتباط layout با اکتیویتی:

setContentView(R.layout.relative_layout);

با این دستور براحتی تعیین میکنید، هنگامی که این Activity اجرا شود، کدام Layout ظاهر شود.

در ادامه همراه شاپ دروید باشید

این آموزش از چه قسمت هایی تشکیل شده است؟

 

در این آموزش با مفاهیم Layout در اندروید و RelativeLayout بطور کامل آشنا خواهید شد و قادر خواهید بود رابط های گرافیکی مختلفی را پیاده سازی نمایید.

از جمله آیتم های موجود میتوان به موارد زیر اشاره کرد:

 

مفهوم RelativeLayout در اندروید

انواع Layout های موجود در اندروید برای پیاده سازی رابط های کاربری

استفاده از خصوصیت های CenterVertical و CenterHorizontal در RelativeLayout

آشنایی و استفاده از Margin

آشنایی با id و طریقه تعریف کردن id ها

طراز بندی ویجت ها کنار هم

حل مشکل بهم ریختگی View ها در RelativeLayout

 

 

مشخصات ویدئو


عنوان:آشنایی با RelativeLayout در اندروید
مدرس:فرزاد سرسیفی
مدت:21 دقیقه
سطح:حرفه ای




بازخورد کاربر

Create an account or sign in to leave a review

You need to be a member in order to leave a review

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری

هیچ نقدی برای نمایش وجود ندارد.

  • بیشترین دانلودها

    هفته

    1. رایگان

    2. رایگان

      توسط amirsh
         3   1
    3. رایگان

      توسط Omid Zakeri
         2   0
    4. رایگان

    5. رایگان

    ماه

    1. رایگان

    2. رایگان

      توسط amirsh
         18   1
    3. رایگان

      توسط Amir2115
         17   0
    4. رایگان

      توسط Omid Zakeri
         7   0
    5. رایگان

    سال گذشته

    1. رایگان

      توسط Omid Zakeri
         124   0
    2. رایگان

    3. 50٬000 ریال

      توسط Omid Zakeri
         0   85   0
    4. رایگان

    5. 10٬000 ریال

    تمام زمان

    1. رایگان

      توسط Omid Zakeri
         124   0
    2. رایگان

    3. 50٬000 ریال

      توسط Omid Zakeri
         0   85   0
    4. رایگان

    5. 10٬000 ریال

  • مطالب مشابه

    • توسط giti.69
      سلام
      من تا حالا با اندروید کار نکردم و هیچی ازش نمیدونم.
      با جاوا هم کار نکردم
      یکی به من ی بسته آموزشی به مبلغ 80 هزار تومان معرفی کرده.
      که خودش میگه نیازی به زبان جاوا نداره.
      و با اکلیپس کار میکنه.
      میخواستم بدونم برای کار به اکلیپس نیاز به دانش برنامه نویسی جاوا دارم/؟
      به نظرتون میصرفه این بسته رو بخرم؟
       
      http://shopdroid.ir/android-programming-training-videos/android-package/product/310-android-training-a-to-z-package/category_pathway-59.html
    • توسط Farzad Sarseifi
      محیط جدید برنامه نویسی اندروید Android Studio

      اندروید استودیو  یک محیط برنامه نویسی برای پلتفرم اندروید است. این برنامه در 16 می 2014 توسط مدیران گوگل در کنفرانس گوگل آی/او معرفی شد. از ماه جوئن 2014 نسخه پیش نمایش این برنامه (به صورت رایگان) برای امتحان در دسترس توسعه دهنده‌ها قرار گرفت. این محیط بر اساس نرم‌افزار محبوب جت برینز طراحی شده است، این استودیو بطور اختصاصی برای اندروید طراحی شده. هم اکنون این استودیو برای دانلود بر روی ویندوز، مک و لینوکس در دسترس می‌باشد.
      از جمله میتوان به موارد زیر اشاره کرد :
      1-کدنویسی سریع و قدرتمند(Powerful code editing) :
      Android Studio شامل ادیتور ویرایش قدرمتندی میباشد،که بر پایه intellij میباشد،همچنین شامل ویژگی های زیر میباشد
      smart editing, advanced code refactoring, , deep static code analysis
      2- UI قدرتمند و سریع :
      یکی از امکاناتی خیلی جذابی(خفنی!) که برای ساخت UI در اختیار برنامه نویسان قرار گرفته امکان مشاهده 6 نما در قسمتی از صفحه میباشد،این مسئله شاید به یکی از بزرگترین مشکلات برنامه نویسان اندروید تبدیل شده بود،با ورود این محیط برنامه نویسی قدرمتند این مشکل تا حدود زیادی حل خواهد شد.

      3-محیط متن باز(Open source development) :
      از جمله ویژگی های دیگر این محیط برنامه نویسی متن باز بودن(رایگان) میباشد که از جمله مزیت این محیط قدرتمند میباشد.

      4- دسترسی به سرویس های گوگل(Android Tools).
      برای دانلود برنامه Android Studio به آدرس زیر رفته و آن را دانلود نمایید.
       
      چندین ویژگی مهم در این نرم‌افزار برای توسعه دهندگان اندروید :
      چیدمان زنده: ویرایشگر WYSIWYG – کدنویسی زنده – رندر هم زمان برنامه کنسول توسعه دهنده: راهنمای بهینه سازی – کمک برای ترجمه – ردیابی ارجاع – طریقه استفاده پشتیبانی از ساخت مبتنی بر Gradle رفع و عیب یابی مخصوص اندروید ابزار لینت برای گرفتن عملکرد، قابلیت استفاده، نسخه سازگار با مشکلات دیگر قابلیت Proguard و امضای برنامه مبتنی بر الگوی wizard برای ایجاد طرح اندروید و اجزای مشترک ویرایشگر طرح بندی غنی که به شما اجازه کشیدن و رها کردن UI کامنت‌ها را می‌دهند. گزینه‌ای برای تنظیمات پیش نمایش طرح بندی در صفحه نمایش چندگانه  
       
    • توسط Farzad Sarseifi
      در آموزش قبلی آموختیم که زبان کاتلین دارای چه قدرت هایی میباشد .بر همین اساس در این جلسه آموزشی یاد خواهیم گرفت که به چه صورتی بتوانیم از کاتلین در اندروید استودیو استفاده کنیم

      ابتدا محیط اندروید استودیو را باز کنید
      Android studio 3.0

       
      تیک گزینه کاتلین را انتخاب کنید و سپس گزینه finish را انتخاب کنید تا پروژه ساخته شود
      برای ورژن های اندروید استودیو 2 .x  به بالاتر شما حتما باید پلاگین کاتلین را نصب کنید از طریق مسیر file->Settings->plugin و گزینه kotlin را جستجو نمایید

      Project level app.gradle
      1- تعریف کردن ورژن kotlin در زمانی که از ورژن های  1.1.3-2  استفاده میکنید
      2- Dependency کاتلین را اضافه میکنیم
       

      app level app.gradle
       
      1- پلاگن کاتلین اضافه میشود به ماژول ها
      2- kotlin یک کتابخاه استاندارد میباشد.برای اینکه بیشتر در مورد این کتابخانه بدانیم از ادرس kotlinlang.org  استفاده کنید
       
      پسوند فایل های کاتلین kt میباشد. در تصویر زیر تفاوت کاتلین و جاوا مشخص میشود
       

      1- تمامی ارث بری ها با color (دو نقطه) انجام میشود(extends در جاوا)
      2- وقتی یک متد overrideمیشود حتما میبایستی از کلمه کلیدی override استفاده کنیم
      3- حتما باید بعد از تعریف کرد یک آبجکت از ?  (علامت سوال) استفاده کنید.
       
       
      حالا خروجی به این صورت میباشد

       
    • توسط Farzad Sarseifi
      نصب پلاگین Kotlin در اندروید استودیو
      در صورتی که نسخه اندروید استودیو کمتر از 3 باشد حتما میبایستی پلاگین Kotlin را در اندروید استودیو نصب کنید
       

      از منوی پلاگین های intellij گزینه plugin را نصب کنید

      روی گزینه Install jetBrains Plugin  کلیک کنید  سپس در کادر زیر Kotlin را جستجو کنید

      سپس گزینه install را انتخاب کنید تا پلاگین Kotlin بر روی اندروید استودیو نصب کنید و بتوانید از Kotlin در برنامه نویسی اندروید استفاده کنید
       
    • توسط Farzad Sarseifi
      کتابخانه BottomNavigationView در داخل کتابخانه deisgn از ورژن 25 به بالاتر وجود دارد
      داکیومنت گوگل :
      https://developer.android.com/reference/android/support/design/widget/BottomNavigationView.html

       
      برای پیاده سازی استفاده از BottomNavigationView  میابیستی مراحل زیر را بطور کامل انجام دهید :
       
      1- ابتدا Dependencyها را در فایل app->build.gradle وارد نمایید
      compile 'com.android.support:appcompat-v7:25.1.0' compile 'com.android.support:design:25.1.0' compile 'com.android.support:support-v4:25.1.0' 2- فرگمنت ها :
      همانطور که مطلع هستید برای نمایش تب های هر کدام از گزینه های BottomNavigationView   میبایستی فرگمنت های مربوطه را طراحی کرد. در این مثال فرض میگیریم 3 تب داریم پس باید 3 فرگمنت ایجاد کنیم.
      Fragment 1:
      fragment_item_one.xml
      <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.truiton.bottomnavigation.ItemOneFragment"> <ImageView android:id="@+id/truiton_image" android:layout_width="300dp" android:layout_height="300dp" android:layout_centerInParent="true" android:src="@mipmap/truiton"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/truiton_image" android:layout_centerHorizontal="true" android:text="Fragment 1" android:textSize="30sp"/> </RelativeLayout>  
      import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class ItemOneFragment extends Fragment { public static ItemOneFragment newInstance() { ItemOneFragment fragment = new ItemOneFragment(); return fragment; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_item_one, container, false); } } Fragment 2:
      fragment_item_two.xml
      <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.truiton.bottomnavigation.ItemTwoFragment"> <ImageView android:id="@+id/truiton_image" android:layout_width="300dp" android:layout_height="300dp" android:layout_centerInParent="true" android:src="@mipmap/truiton"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/truiton_image" android:layout_centerHorizontal="true" android:text="Fragment 2" android:textSize="30sp"/> </RelativeLayout>  
      import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class ItemTwoFragment extends Fragment { public static ItemTwoFragment newInstance() { ItemTwoFragment fragment = new ItemTwoFragment(); return fragment; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_item_two, container, false); } } Fragment 3:
      fragment_item_three.xml
      <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.truiton.bottomnavigation.ItemThreeFragment"> <ImageView android:id="@+id/truiton_image" android:layout_width="300dp" android:layout_height="300dp" android:layout_centerInParent="true" android:src="@mipmap/truiton"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/truiton_image" android:layout_centerHorizontal="true" android:text="Fragment 3" android:textSize="30sp"/> </RelativeLayout>  
      import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class ItemThreeFragment extends Fragment { public static ItemThreeFragment newInstance() { ItemThreeFragment fragment = new ItemThreeFragment(); return fragment; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_item_three, container, false); } }  
      3- منو ها:
      در این مرحله میبایستی منوها را ایجاد نمایید از مسیر res->menu
      bottom_navigation_items.xml
      <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/action_item1" android:icon="@drawable/ic_account_box_black_24dp" android:title="@string/item_1"/> <item android:id="@+id/action_item2" android:icon="@drawable/ic_account_circle_black_24dp" android:title="@string/item_2"/> <item android:id="@+id/action_item3" android:icon="@drawable/ic_assignment_ind_black_24dp" android:title="@string/item_3"/> </menu>  
      4- در این مرحله طراحی ظاهر کاربری اکتیویتی اصلی را انجام میدهیم :
      در این مرحله از تگ BottomNavigationView استفاده میکنیم
      <?xml version="1.0" encoding="utf-8"?> <RelativeLayout android:id="@+id/activity_main" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.truiton.bottomnavigation.MainActivity"> <FrameLayout android:id="@+id/frame_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_above="@+id/navigation" android:animateLayoutChanges="true"> </FrameLayout> <android.support.design.widget.BottomNavigationView android:id="@+id/navigation" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:background="@color/colorPrimary" app:itemIconTint="@color/nav_item_state_list" app:itemTextColor="@color/nav_item_state_list" app:menu="@menu/bottom_navigation_items"/> </RelativeLayout>  
      5- در این مرحله میبایستی BottomNavigation را در اکتیویتی تعریف نماییم
      import android.os.Bundle; import android.support.annotation.NonNull; import android.support.design.widget.BottomNavigationView; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentTransaction; import android.support.v7.app.AppCompatActivity; import android.view.MenuItem; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); BottomNavigationView bottomNavigationView = (BottomNavigationView) findViewById(R.id.navigation); bottomNavigationView.setOnNavigationItemSelectedListener (new BottomNavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { Fragment selectedFragment = null; switch (item.getItemId()) { case R.id.action_item1: selectedFragment = ItemOneFragment.newInstance(); break; case R.id.action_item2: selectedFragment = ItemTwoFragment.newInstance(); break; case R.id.action_item3: selectedFragment = ItemThreeFragment.newInstance(); break; } FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); transaction.replace(R.id.frame_layout, selectedFragment); transaction.commit(); return true; } }); //Manually displaying the first fragment - one time only FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); transaction.replace(R.id.frame_layout, ItemOneFragment.newInstance()); transaction.commit(); //Used to select an item programmatically //bottomNavigationView.getMenu().getItem(2).setChecked(true); } }  
      خروجی :

       
      با سپاس
      فرزاد سرسیفی