💊Capsule
Static vs Factory Constructors in Dart
منبع :
https://www.linkedin.com/posts/vandadnp_difference-static-factory-activity-6932942346330234881-XbjP?utm_source=linkedin_share&utm_medium=android_app
#capsule
#dart
Static vs Factory Constructors in Dart
منبع :
https://www.linkedin.com/posts/vandadnp_difference-static-factory-activity-6932942346330234881-XbjP?utm_source=linkedin_share&utm_medium=android_app
#capsule
#dart
💊Capsule
Constructor vs Factory Constructor in Dart
منبع :
https://www.linkedin.com/posts/vandadnp_constructor-factory-dart-activity-6930010995234856960-Gayn?utm_source=linkedin_share&utm_medium=android_app
#dart
#capsule
Constructor vs Factory Constructor in Dart
منبع :
https://www.linkedin.com/posts/vandadnp_constructor-factory-dart-activity-6930010995234856960-Gayn?utm_source=linkedin_share&utm_medium=android_app
#dart
#capsule
💊Capsule
🟢ViewInsets
پیکسل هایی هستن که سیستم عامل برای مواردی مثل کیبرد استفاده میکند(System UI)
در این نواحی هیچ محتوایی از اپ رندر نمیشود.
🟢ViewPadding
پیکسل هایی هستن که در طرفین دستگاه قرار دارن (بالا و پایین) مثل noch
🟢Padding
با استفاده از دو مقدار بالا محاسبه میشود.
Padding = max(0.0, viewPadding - viewInsets)
🔥این پراپرتی ها رو میتونید توی MediaQuery پیدا کنید.
#capsule
🟢ViewInsets
پیکسل هایی هستن که سیستم عامل برای مواردی مثل کیبرد استفاده میکند(System UI)
در این نواحی هیچ محتوایی از اپ رندر نمیشود.
🟢ViewPadding
پیکسل هایی هستن که در طرفین دستگاه قرار دارن (بالا و پایین) مثل noch
🟢Padding
با استفاده از دو مقدار بالا محاسبه میشود.
Padding = max(0.0, viewPadding - viewInsets)
🔥این پراپرتی ها رو میتونید توی MediaQuery پیدا کنید.
#capsule
💊Capsule
🔥توی اندروید های 10 به بعد یا Ui های اختصاصی شده مثل miui شاید دیده باشین که با کشیدن دست روی طرفین صفحه نمایش (چپ و راست) میتونیم صفجه رو بک کنیم.
🟢این قسمت ها یا این پیکسل ها در واقع پیکسل هایی هستن که محتوای اپ داخلشون رندر میشه ولی input gestures توی این پیکسل ها تشخیص داده نمیشه.
🟢در واقع سیستم عامل input gestures این پیکسل ها رو خودش مصرف میکنه و اجازه مدیریت اون توسط اپ رو نمیده.
🟢مثلا وقتی که کاربر میخواد منو کشویی رو باز کنه ولی با لمس اون نواحی به جای باز شدن منو صفحه بک میشه.
🔥مقدار پیکسلی که سیستم عامل توی این نواحی مصرف میکنه رو میشه با این پراپرتی از MediaQuery بدست اورد :
systemGestureInsets
#capsule
🔥توی اندروید های 10 به بعد یا Ui های اختصاصی شده مثل miui شاید دیده باشین که با کشیدن دست روی طرفین صفحه نمایش (چپ و راست) میتونیم صفجه رو بک کنیم.
🟢این قسمت ها یا این پیکسل ها در واقع پیکسل هایی هستن که محتوای اپ داخلشون رندر میشه ولی input gestures توی این پیکسل ها تشخیص داده نمیشه.
🟢در واقع سیستم عامل input gestures این پیکسل ها رو خودش مصرف میکنه و اجازه مدیریت اون توسط اپ رو نمیده.
🟢مثلا وقتی که کاربر میخواد منو کشویی رو باز کنه ولی با لمس اون نواحی به جای باز شدن منو صفحه بک میشه.
🔥مقدار پیکسلی که سیستم عامل توی این نواحی مصرف میکنه رو میشه با این پراپرتی از MediaQuery بدست اورد :
systemGestureInsets
#capsule
💊Capsule
BottomSheet
ℹ️
🔥توی متریال دیزاین دو نوع Bottom Sheet داریم.
✔️Persistent
این نوع در واقع مکمل محتوای اصلی هست و جلوی تعامل کاربر با بقیه قسمت های صفحه رو نمیگیره و با لمس کردن بقیه قسمت های اپ بسته نمیشه.
🟢این نوع رو میشه به دو روش استفاده کرد :
🔥پارامتر bottomSheet توی ویجت Scaffold
🔥🔥استفاده از فانکشن
showBottomSheet
و یا
Scaffold.of(context).showBottomSheet()
🔴هر کدوم از این روش ها تفاوت هایی دارن که بعدا اشاره میکنیم.
✔️Modal
این نوع درواقع یک گزینه جایگزین برای Dialog یا popup menu هست و جلوی تعامل کاربر با بقیه قسمت های صفحه رو میگیره.
🟢در صورتی که Dismissible باشه با لمس کردن قسمت های دیگه صفحه بسته میشه.
🔥این مورد رو میشه با استفاده از فانکشن
showModalBottomSheet
استفاده کرد.
#capsule
#intermediate
BottomSheet
ℹ️
🔥توی متریال دیزاین دو نوع Bottom Sheet داریم.
✔️Persistent
این نوع در واقع مکمل محتوای اصلی هست و جلوی تعامل کاربر با بقیه قسمت های صفحه رو نمیگیره و با لمس کردن بقیه قسمت های اپ بسته نمیشه.
🟢این نوع رو میشه به دو روش استفاده کرد :
🔥پارامتر bottomSheet توی ویجت Scaffold
🔥🔥استفاده از فانکشن
showBottomSheet
و یا
Scaffold.of(context).showBottomSheet()
🔴هر کدوم از این روش ها تفاوت هایی دارن که بعدا اشاره میکنیم.
✔️Modal
این نوع درواقع یک گزینه جایگزین برای Dialog یا popup menu هست و جلوی تعامل کاربر با بقیه قسمت های صفحه رو میگیره.
🟢در صورتی که Dismissible باشه با لمس کردن قسمت های دیگه صفحه بسته میشه.
🔥این مورد رو میشه با استفاده از فانکشن
showModalBottomSheet
استفاده کرد.
#capsule
#intermediate
💊Capsule
BottomSheet
2️⃣
✔️Persistent
گفتم که این مورد رو میشه به دو روش پیاده کرد.
🔥پارامتر bottomSheet توی Scaffold :
توی این حالت :
✅باتم شیت جزو محتوای اصلی صفحه حساب میشه.
✅جلوی تعامل کاربر با بقیه المان های صفحه رو نمیگیره
✅با لمس کردن بقیه قسمت های صفحه بسته نمیشه
❌امکان درگ کردن و بسته و باز کردن خود باتم شیت توسط کاربر نیست
❌دکمه بک به اپ بار اضافه نمیشه
❌با بک زدن یا Navigator.pop کل صفحه بسته میشه
🔥توی این حالت باتم شیت اون پایین صفحه میمونه و به هیچ وجه قابل بستن نیست مگر اینکه توی برنامه ست استیت کنی و توی build جدید باتم شیت نداشته باشی
#capsule
#intermediate
BottomSheet
2️⃣
✔️Persistent
گفتم که این مورد رو میشه به دو روش پیاده کرد.
🔥پارامتر bottomSheet توی Scaffold :
توی این حالت :
✅باتم شیت جزو محتوای اصلی صفحه حساب میشه.
✅جلوی تعامل کاربر با بقیه المان های صفحه رو نمیگیره
✅با لمس کردن بقیه قسمت های صفحه بسته نمیشه
❌امکان درگ کردن و بسته و باز کردن خود باتم شیت توسط کاربر نیست
❌دکمه بک به اپ بار اضافه نمیشه
❌با بک زدن یا Navigator.pop کل صفحه بسته میشه
🔥توی این حالت باتم شیت اون پایین صفحه میمونه و به هیچ وجه قابل بستن نیست مگر اینکه توی برنامه ست استیت کنی و توی build جدید باتم شیت نداشته باشی
#capsule
#intermediate
💊Capsule
BottomSheet
3️⃣
✔️Persistent
و اما روش دوم
🔥استفاده از فانکشن
showBottomSheet
یا
Scaffold.of(context).showBottomSheet
توی این حالت:
✅باتم شیت جلوی تعامل کاربر با بقیه قسمت های صفحه رو نمیگیره
✅با لمس کردن بقیه قسمت های صفحه بسته نمیشه
❌امکان درگ کردن و بسته و باز کردن باتم شیت توسط کاربر وجود داره
❌دکمه بک به اپ بار اضافه میشه
❌با بک زدن یا Navigator.pop ابتدا باتم شیت بسته میشه و با بک دوم صفحه
🔥توی این حالت باتم شیت قابل درگ شدن و بسته و باز شدن توسط کاربر هست و با بک هم بسته میشه.
#capsule
#intermediate
BottomSheet
3️⃣
✔️Persistent
و اما روش دوم
🔥استفاده از فانکشن
showBottomSheet
یا
Scaffold.of(context).showBottomSheet
توی این حالت:
✅باتم شیت جلوی تعامل کاربر با بقیه قسمت های صفحه رو نمیگیره
✅با لمس کردن بقیه قسمت های صفحه بسته نمیشه
❌امکان درگ کردن و بسته و باز کردن باتم شیت توسط کاربر وجود داره
❌دکمه بک به اپ بار اضافه میشه
❌با بک زدن یا Navigator.pop ابتدا باتم شیت بسته میشه و با بک دوم صفحه
🔥توی این حالت باتم شیت قابل درگ شدن و بسته و باز شدن توسط کاربر هست و با بک هم بسته میشه.
#capsule
#intermediate
BottomSheet
4⃣
خب تا اینجا bottom sheet های نوع Persistent رو دیدیم و با دو روش استفاده از اون ها ، شباهت ها و تفاوت های این روش ها اشنا شدیم.
❓حالا چرا به اینا میگن Persistent؟
🔥این کلمه به معنی ماندگار هست (یه چیز توی این مایه ها 😝)
حالا چون این نوع از bottom sheet ها مزاحم کار کردن با بقیه قسمت های صفحه نمیشن و با کار کردن با بقیه قسمت های صفحه بسته نمیشن، توی متریال دیزاین بهشون میگن
Persistent Bottom Sheets
#capsule
#intermediate
4⃣
خب تا اینجا bottom sheet های نوع Persistent رو دیدیم و با دو روش استفاده از اون ها ، شباهت ها و تفاوت های این روش ها اشنا شدیم.
❓حالا چرا به اینا میگن Persistent؟
🔥این کلمه به معنی ماندگار هست (یه چیز توی این مایه ها 😝)
حالا چون این نوع از bottom sheet ها مزاحم کار کردن با بقیه قسمت های صفحه نمیشن و با کار کردن با بقیه قسمت های صفحه بسته نمیشن، توی متریال دیزاین بهشون میگن
Persistent Bottom Sheets
#capsule
#intermediate