گروه مقاله : اندروید
تاريخ انتشار : 1396/04/20 - 10:38
كد :7697

کد نویسی اندروید برای ظاهر متفاوت در تبلت ها و گوشی ها

در این آموزش به بررسی Android - Fragments و کارایی آنها در ایجاد نمای متفاوت برای دستگاه های اندرویدی با ابعاد متفاوت خواهیم پرداخت .

کد نویسی اندروید برای ظاهر متفاوت در تبلت ها و گوشی ها

 

Fragments در اندروید

یک فراگمنت یک قطعه از یکactivity  (کدی که مشخصات صفحه را بلوک بندی می کند) است، که میتواند چندین ماژولار activity  دیزاین را فعال کند. یک فراگمنت در واقع نوعی sub-activity است.

بخش های زیر نکات مهمی در باره فراگمنت میباشد

  • یک فراگمنت در طرح و رفتار مستقل است، هر فراگمنت چرخه حیات life cycle    مستقل خود را دارد .
  • شما میتوانید در حین اجرای یک  activity فراگمنت ها را اضافه و یا حذف کنید .
  • شما میتوانید چندین فراگمنت را در یک activity ترکیب کنید ، تا یک نمای کاربردی چند حالته multi-pane UI  ایجاد کنید
  • یک فراگمنت میتواند در چندیدن activities بکار رود.
  • چرخه حیات  life cycle   فراگمنت با چرخه حیات  life cycle   host activity فراگمنت ارتباط تنگاتنگی دارد. یعنی وقتیکه activity متوقف شود همه فراگمنت هایی که در activity فعال هستند هم متوقف میشوند.
  • یک فراگمنت قادر به پیاده سازی یک behavior بدون نیاز به وجود کامپوننت در رابط کابری است.
  • nbsp;فراگمنت ها در نسخه Honeycomb  به Android API اضافه شده اند . این نسخه از اندروید API-11 است.

شما فراگمنت ها را با کلاس  Fragment ایجاد می کنید . شما می توانید یک فراگمنت را در  activity layout خود با کمک فراخوانی فراگمنت در فایل activity's layout درج کنید . اینکار درست مانند استفاده از المان <fragment> است.

قبل از اینکه فراگمنت ها به اندروید اضافه شوند ، ما یک محدودیت داشتیم ، این محدودیت عبارت بود از اینکه ما تنها میتوانستیم یک activity را روی صفحه در یک زمان داشته باشیم. بنابراین ما نمی توانستیم صفحه دستگاه و کنترلها را به بخش های جدا از هم تقسیم کنیم. اما با مقدمه ای که از فراگمنت ها گفتیم، میدانیم که انعطاف بیشتری داشته و این محدودیت ها را حذف میکنند. درست است که هنوز ما یک activity روی صفحه داریم، اما هر activity میتواند شامل چندین فراگمنت شود ، که هر کدام قالب بندی، رخداد ها و چرخه حیات  life cycle   کامل و مستقل خود را دارند.

در تصویر زیر یک مثال ساده از نحوه تعریف دو ماژول رابط کاربری با فراگمنت ها را میبینیم، که نشان میدهد که فراگمنت ها چگونه میتوانند در یک activity ترکیب شوند . مانند تصویر مربوط به تبلیت ، اما در عین حال فراگمنت ها  میتوانند از هم جدا هم باشند، مانند تصویر مربود به دستگاه موبایل:

آموزش اندروید

 

نرم افزار میتواند دو فراگمنت را به یک Activity در زمان اجرا بر روی دستگاهی با ابعاد تبلت بیافزاید. هر چند که در دستگاه های کوچکتر جایی برای هر دو فراگمنت نیست و صحفه تنها دارای یک بخش خواهد بود که در مثالت ما لیستی از مقالات است . هنگامیکه کاربر در این حالت مقاله ای را انتخاب کند . نرم افزار Activity دوم را شروع خواهد کرد. Activity دوم در واقع شامل فراگمنت ثانویه است، که امکان خواندن مقاله انتخاب شده را خواهد داد.

چرخه حیات  life cycle   فراگمنت ها

فراگمنت های اندروید چرخه خیات خود را دارند ، که بسیار مشابه چرخه حیات  life cycle   activity است. در تصویر زیر مراحل مختلف چرخه حیات  life cycle   فراگمنت را می بینید:

آموزش اندروید

 

چرخه حیات  life cycle   فراگمنت

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

  • onAttach() : در این حالت فراگمنت با یک activity همراه است . فراگمنت و activity بطور کامل مقدار دهی اولیه نشده اند. شما معمولا در این متد یک مرجع  برای activity  دریافت می کنید که از فراگمت فراتر از مقدار دهی اولیه استفاده می کند.
  • onCreate() : سیستم این متد را هنگامی فراخوانی میکند ، که یک فراگمنت ساخته میشود. شما باید کامپوننت های ضروری فراگمنتی را که میخواهید هنگام توقف کامل ، توقف موقت و شروع بکار مجدد  نگه دارید را مقدار دهی اولیه نمایید.
  • onCreateView() : این متد زمانی فراخوانی می شود، که فراگمنت برای اولین بار رابط کاربری را ترسیم می کند. برای رسم یک رابط کاربری برای فراگمنت ، شما باید مقداد کامپوننت View را از این متد بازگردانی کنید، این مقدار ریشه طرحبندی layout فراگمنت خواهد بود. شما ممکن است مقدار تهی را دریافت کنید، این مقدار زمانی که شما یک رابط کاربری را ایجاد نمی کنید بدست خواهد آمد.
  • onActivityCreated() : متد onActivityCreated() پس از متد onCreateView() فراخوانی میشود. این اتفاق زمانی رخ میدهد که host activity ایجاد می شود. Activity و فراگمنت بعنوان مثال به همان شیوه view hierarchy در activity ایجاد میشوند. در این نقطه ، view میتواند با متد findViewById() دسترسی داشته باشد. مثال: در این متد شما میتوانید اشیائی را که نیاز به اشیاء زمینه ای Context object  دارند را مثال بزنید. Context object : شیئ است که به شما اجازه دسترسی به منابع و کلاس های خاص نرم افزار را میدهد.
  • onStart() : متد onStart() هنگامی که یک فراگمنت قابل مشاهده میشود فراخوانی می گردد.
  • onResume() : فراگمنت فعال خواهد شد.
  • onPause() : سیستم این متد را بعنوان اولین نشانه ترک فراگمنت از سوی کاربر فراخوانی می کند. این متد معمولا هنگامیکه شما باید هر تغییری را ایجاد کنید و این تغییر فراتر از session فعلی کاربر ادامه دارد فراخوانی میشود.
  • onStop() : فراگمنت با فراخوانی این متد متوقف میگردد.
  • onDestroyView() : نمای فارگمنت بعد از این متد از بین خواهند رفت.
  • nbsp;onDestroy() : این متد برای آخرین مرحله پاکسازی فراگمنت فراخوانی میشود . هیچ تضمینی برای فراخوانی این متد توسط سیستم اندروید نیست .

چگونه از فراگمنت استفاده کنیم ؟

لیست زیر مراحل ساده ایجاد یک فراگمنت را توضیح میدهند.

  • اول از همه تصمیم بگیرید که چه تعداد فراگمنت برای استفاده در یک activity نیاز دارید . برای مثال ما میخواهیم از دو فراگمنت برای تنظیمات نمای افقی و عمودی دستگاه استفاده کنیم.
  • گام بعدی، بسته به عددی دارد که برای فراگمنت ها در نظر گرفته اید، کلاس هایی را که کلاس فرگمنت را ایجاد می کنند بسازید. کلاس فراگمنت هایی که در بالا اشاره شد، عملگرها را فراخوانی میکند . شما میتوانید در صورت نیاز پایه ی هر عملگری را تغییر دهید.
  • متناظر هر فراگمنت ، شما باید فایل چیدمان را در فایل XML ایجاد کنید . این فایل ها حاوی چیدمانی برای فراگمنت معرفی شده خواهند بود.

middot; در آخر فایل activity را تغییر دهید ، تا منطق مد نظرتان را برای جایگزینی فراگمنت ها بر اساس نیاز خود را تعریف کنید.

انواع فراگمنت

بصورت پایه ای فراگمنت ها به سه دسته زیر تقسیم می شوند.

فراگمنت های تک فریم Single frame fragments: این فراگمنت ها برای دستگاه های که در یک دست جا میشوند مانند گوشی ها بکار می آید و تنها یک فراگمنت را در هر لحظه نشان میدهند.

فراگمنت های لیست List fragments: فراگمنت ها نمای ویژه ای بصورت یک لیست دارند که به نام list fragment شناخته میشود.

فراگمنت های تراکنش Fragments transaction : در این نوع فراگمنت ها شما میتوانید از یک فراگمنت به فراگمنت دیگر بروید.

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

نظرات كاربران :