آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

طراحی UI

top206  12 سال پیش  12 سال پیش
+4 0

سلام من آموزش های استاد رو دنبال میکنم حرف به حرفشو مینویسم ولی این قسمتو (Design Complex UI Layouts)متوجه نمیشم یکی نیس یکم واضح تر بگه؟؟؟؟؟؟؟؟

 

0 0
دقیقا چه بخشیش رو متوجه نمیشی؟ بخش کار با weight ها؟ (12 سال پیش)
0 0
بخشی که عرض و ار تفاع و.. اینا رو باید وارد کنی (12 سال پیش)
 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
sadeghbarout  12 سال پیش
+18 0

درست نفهمیدم چی رو مشکل داری!

یه توضیحات کلی میدم امیدوارم مشکلت رفع بشه


ببین به طور خیلی ابتدایی سروکار ما با 3 مورده:

layout height   ارتفاع کنترل

layout width   عرض کنترل

layout weight   وزن کنترل


یه نکته ای که خیلی مهمه و بعضا باعث خطا میشه اینه که دو بخش اول رو حتما باید با دیمانسیون وارد کنی که ما از dip استفاده میکنیم (مثلا 20dip) 

مقادیر این دو بخش (height , width) سه حالت خاص هم دارن :

fill_parent و match_parent : تقریبا هر دوشون  1 کار میکنن ( خودمم دقیق فرقشون رو نمیدونم)  و اون اینه که اندازه کنترل رو به اندازه کنترل پدرشون بزرگ میکنن

wrap_content : که اندازه کنترل رو به اندازه محتویات درونش بزرگ میکنه. ( یعنی اینقدر بزرگش میکنه که محتویات درونش درست نمایش داده بشن)

 

اما weight فقط 1 مقدار بین 0 و 1 میپذیره


برای داشتن یه UI داینامیک ، مجبور به استفاده از weight هستیم . درواقع weight همون درصد دادن به کنترله که چند درصد رو اشغال کنه

نکته اول اینکه استفاده از weight فقط برای یکی از ابعاد یک کنترل ممکنه مثلا فقط برای width یا height یک کنترل. (درواقع جایگزینشه)

نکته دوم اینکه اگه مثلا میخوایم weight رو برای عرض اون کنترل استفاده کنیم ، باید مقدار width اون رو 0dip وارد کنیم و بعد به weight مقدار بدیم. (مثلا اگه بدیم 0.3 ، داریم میگیم عرض این کنترل 30% کل عرض صفحه باشه)

نکته سوم اینکه برای استفاده از وزن،  باید مجموع وزن کل اون جهت 1 باشه . مثلا نمیشه فقط 1 کنترل گذاشت و گفت 20% صفحه رو بگیر بلکه باید 2 کنترل بذاریم و بگیم یکی 20% و یکی 80% صفحه رو بگیره

نکته چهارم اینکه گاهی اوقات نیاز میشه که ما هم برای عرض و هم برای ارتفاع از درصد استفاده کنیم. برای این کار باید یه weight به یکی از ابعاد خود کنترل بدیم و یه weight به لایه پدر اون کنترل.


حالا با یه مثال توضیحات رو تموم میکنم

فرض کن میخوایم کنترل ما 20% عرض و 40% ارتفاع رو پر کنه

برای این کار چند مرحله رو باید انجام بدیم :

1- اندازه های پدر کنترل : چون پدرش باید 40% ارتفاع رو پر کنه نیازه که 2 تا لایه خطی بذاریم (چون بالاخره اون 60% هم یکی باید پر کنه و نمیشه خالی باشه). weight یکش رو 0.4 و یکیش رو 0.6 میذاریم که باعث میشه ارتفاع صفحه ما  به 2 بخش تقسیم بشه (طبق چیزی که گفتم طبعا باید height هاشون هم 0dip و width هاشون رو fill_parent بذاریم)

2- اندازه های خود کنترل: خب حالا کنترلمورد نظرمون رو توی اون لایه 40% ی میندازیم و باز هم چون میخوایم فقط 20% رو بگیره باید یه کنترل دیگه هم توی اون لایه بذاریم که 80% بقیه رو برامون پر کنه. پس 2 تا از کنترل های مورد نظر رو میندازیم توش و weight یکش رو 0.2 و یکیش رو 0.8 میذاریم که باعث میشه عرضمون هم به 2 قسمت  تقسیم بشه .(طبق چیزی که گفتم طبعا باید width هاشون هم 0dip و height هاشون رو fill_parent بذاریم)

3- حالا اون کنترل هایی که نمیخوایم رو invisible میکنیم


امیدوارم کمکت کرده باشم :)

بازم متوجه نشدی بگو بیشتر توضیح بدم!

پاسخ به سوال 
top206  12 سال پیش
0 0

خیلی ممنون واقعا مفید بود مرسی

0 0
خواهش میکنم ;) (12 سال پیش)
0 0
مرسی، عالی بود (12 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .