Skip to main content

طریقه ایجاد اکتیویتی و لایوت جدید

Create new activities and layouts

در این درس، به‌طور تخصصی نحوه ایجاد یک Activity جدید در اندروید استودیو با استفاده از قالب blank activity توضیح داده شده است؛ از تنظیم نام (مثلاً About Activity) و ثبت آن در فایل Manifest تا اعمال تنظیمات سلسله‌مراتبی با استفاده از hierarchical parent و فراخوانی متد setDisplayHomeAsUpEnabled برای نمایش دکمه بازگشت در Action Bar پرداخته می‌شود. همچنین، فرایند انتقال اجزای بصری بین لایوت‌ها (از content_main.xml به content_about.xml) و بهینه‌سازی XML با تنظیم ویژگی‌هایی مانند layout_width، layout_height، text size، text style و margin برای رسیدن به یک طراحی یکپارچه توضیح داده شده است؛ به علاوه، حذف Floating Action Button و کدهای مرتبط از کلاس‌های جاوا برای تطبیق با نیازمندی‌های صفحه جدید نیز مورد بررسی قرار گرفته است. این درس، چارچوبی جامع از نکات کلیدی توسعه اندروید را ارائه می‌دهد که در ویدیوی تکمیلی به تفصیل آموزش داده می‌شود.

لینک کمکی (official link) – آموزش تخصصی ایجاد About Activity و بهینه‌سازی Layout در Android Studio

تا اینجا کار، برنامه من ساده بود و فقط یک صفحه یا اکتیویتی داشت و اکثر برنامه های اندرویدی بیشتر از یک اکتیویتی دارن و من یادتون میدم که چطوری یک اکتیویتی جدید ایجاد کنید و نشونتون میدم کجای فایل مانیفست برنامه تون ثبت میشه و ساختارش چجوری هست. من یک پروژه با نام Add Activity باز کردم که شامل همه کارهایی هست که تا الان توی این دوره آموزشی انجام دادیم. به ماژول app در پنجره project میرم و بعد از اینکه با کلیک بر روی این ماژول اون رو بصورت انتخاب در آوردم، منوی فایل رو میزنم و بعد New و اکتیویتی رو انتخاب میکنم.

حالا یک لیست از قالبهای در دسترس رو میبینیم. در واقع اینها همون قالبهایی هستند که وقتی داشتیم یک پروژه جدید میساختیم باید انتخاب میکردیم. باز هم مثل قبل اکتیویتی جدیدم رو بر اساس قالب blank activity ایجاد میکنم. نام این اکتیویتی رو About Activity میذارم. که یک صفحه خواهد بود با یکسری اطلاعات درباره تاریخچه شرکتمون، که قصد داریم در برنامه اندرویدی حال حاضر مثلا شرکتمون رو سفارشی کنیم. این اکتیویتی لانچر نیست، یعنی این اکتیویتی اولین اکتیویتی نیست که کاربر میبینه پس نیاز به فعال کردن چک باکس Launcher Activity نیست و از فرگمنتها هم استفاده نمیکنم ولی میخوام یک حالت سلسله مراتبی رو با استفاده از آپشن hierarchical parent ایجاد کنم. در مورد فرگمنتها بعدا توضیح خواهم داد.

این قسمت hierarchical parent اون اکتیویتی ای رو نشون میده که قرار هست وقتی از داخل این اکتیویتی که در حال تعریفش هستم دکمه بک دستگاه رو زدیم برگرده سراغ همین اکتیویتی که در اینجا انتخاب میشه. آیکن browse رو میزنم و تنها اکتیویتی موجود رو انتخاب میکنم که همون Main Activity هستش و با این کارم دیگه هر موقع از این صفحه جدیدی که میخام تعریف کنم روی دکمه بک دستگاه بزنم بر می گردم به Main Activity. بقیه تنظیمات رو قبول میکنم و روی finish کلیک میکنم. اگه این ارور رو دیدین ببنیدینش. درموردش نگران نباشید. اینجا هم اگه دقت کنید می بینید که فایل هایی که ساخته شدن آورده شده، اول یک کلاس جاوا جدید می بینیم.

که نامش About Activity هستش، که مثل قبل از کلاس App CompatActivity، extend شده. یک تفاوت خیلی مهم بین این اکتیویتی و اکتیویتی لانچر وجود داره. شما اینجا متد set DisplayHomeAsUpEnabled رو میبینید که فراخونی شده، در نسخه های قدیمی اندروید این متد باعث میشه یک آیکن در اکشن بار ظاهر بشه. درست یک باتن در بالای صفحه. در واقع یک پیکان که به سمت چپ اشاره داره و این یکی از راه های برگشت کاربر از اکتیویتی فعلی به اکتیویتی اصلی یا همون parent activity هستش.

همچنین میبینیم که دو تا فایل لایوت جدید هم ساخته شدن. یکی با نام activity _about که لایوت parent محسوب میشه و شامل coordinator layout و تعریف tool bar برای action bar هستش و content _about که جایی هست که میتونید همه اشیا بصری تون رو اینجا قرار بدید. خب چون من قبلا یک تعداد اشیا در Main Activity ام ساخته بودم میارم شون اینجا یعنی در AboutActivity. از فولدر منابع لایوتم میرم به content_main.xml و Image View و Scroll View رو انتخاب میکنم و کاتشون میکنم به داخل حافظه کلیپ برد سیستمم.

 و آخرین Image View رو میذارم همینجا بمونه و برمیگردم به content_about.xml و اون کد های xml رو اینجا در بین تگ های Relative Layout پاست میکنم و کدم رو ریفرمت میکنم تا خوندنش راحتتر بشه. خب مکان Scroll View دیگه ربطی به photo نداره، پس این خط رو از داخل این کدهام حذفش میکنم. ولی یک کنترل Text View جدید اینجا اضافه میکنم. Layout_width، یا عرضش رو روی fill _parent تنظیم می کنم و Layout_heigh یا ارتفاعش رو میذارم wrap _content، و بعدش هم ادامه میدم و یک متن از string resource، یعنی از متن هایی که قبلا در فایل strings.xml ساختم، بهش اختصاص میدم.

من از قبل دو تا string resources جدید در این پروژه ساختم. یکی با آیدی about _headline و یکی با آیدی about _text و من میخوام هر دوی این منابع رو بکار ببرم. ویژگی text اش رو از string resource، روی about _headline تنظیم می کنم. حالا بیایید یکم ظاهرشون رو درست کنیم. ویژگی text size اش رو میذارم 24 sp و همچنین ویژگی text style هم میذارم bold.

و میخوام این شی رو زیر Image View قرار بدم، که درواقع قبلا یک کد برای این در Scroll View داشتم، پس فقط کپی و پیستش میکنم اینجا. یک ویژگی margin bottom هم روی 10 dp واسش تنظیم میکنم. حالا میام سراغ Scroll View و ویژگی layout _below اش رو تغییر میدم. میخوام Scroll View زیر Text View جدیدی که سفارشی کردیم، قرار بگیره. پس باید یک آیدی به Text View اختصاص بدم و آیدی اش رو headline میذارم بعد میام پایین و در Scroll View اون آیدی رو استفاده میکنم.

خب یگ نگاهی هم به design این لایوت بندازیم. در صفحه من کامل و درست نشونش نمیده. پس پروژه باید rebuild بشه برای اینکار از منوی build، clean project رو انتخاب میکنم و بعد refresh میکنم و میبینیم که نمایشش درست شد. خب حالا در صفحه about ام یک لوگو، یک تیتر و یک متن قابل اسکرول دارم ولی در این طراحی از تاریخچه شرکتم، به این دکمه floating action نیازی ندارم. پس میرم به فایل activity_about.xml و floating action button رو از اینجا حذف میکنم.

حالا باید چند خط کد مربوط به floating action button رو در کلاس های جاوا هم حذف کنم. چون در کلاس About Activity ام دیگه floating action button ای ندارم پس نیازی هم نیست که تنظیمات موقع کلیک کردنش رو داشته باشم پس این کدها رو حذف میکنم. همچنین باید چند خط کد رو از کلاس Main Activity هم حذف کنیم. این کدها مربوط به تنظیم متنی، که قرار بود در اسکرول تکست ویو نمایش داده بشه، بودن. که من حذف شون میکنم و یک تنظیمات دیگه هم لازم هست. به فایل content _about میرم و متن lorem ip sum که مربوط به متن داخل اسکرول ویو میشه رو حذف میکنم و به جاش about _text رو قرار میدم و با فشار دادن کنترل یا کامند و کلیک کردن اون متن طولانی ای که قرار هست نشون داده بشه رو می بینید که برام میاره.

و دیگه نیازی به متن lorem ip sum ندارم پس خط مربوط به اون رو دیلیت اش میکنم. حالا آماده ام تا از کدم اجرا بگیرم. بهتون این هشدار رو میدم که ما الان وقتی برنامه رو روی دستگاه اجرا کنیم نمیتونیم صفحه about جدیدمون رو ببینیم. وقتی برنامه روی دستگاه بالا میاد صفحه home رو میبینیم که فقط یک تصویر jacket داره ولی هیچ راهی نداریم که به صفحه about بریم. برای اینکار باید یاد بگیرید چطوری میشه از یک اکتیویتی به اکتیویتی دیگه رفت و من در ویدیوی آموزشی بعدی این رو بهتون آموزش میدم.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دوره ها
درس ها
Tha PMIS
طهاکو من
0