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

یادداشت های یک برنامه نویس معمولی

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

یادداشت های یک برنامه نویس معمولی

طبقه بندی موضوعی

۱۴ مطلب در اسفند ۱۳۹۹ ثبت شده است

لینک های خوب برای Nvigation Component

۰ نظر موافقین ۰ مخالفین ۰ ۲۷ اسفند ۹۹ ، ۰۵:۳۴
میم دال

برای انتقال اطلاعات بین فرگمنت ها در navigation component دو روش وجود دارد:

 

1. استفاده از bundle - در این صورت bundle رو به عنوان آرگومان دوم navigate پاس می دهیم اما این روش توصیه نمی شود.

۰ نظر موافقین ۰ مخالفین ۰ ۱۳ اسفند ۹۹ ، ۱۳:۴۰
میم دال

اگر فرگمنتی گلوبال اکشن داشته باشه یعنی از هر فرگمنتی میشه به اون فرگمنت رفت. برای پیاده سازی پاپ آپ منو از طریق این روش دیگه نیازی نیست آی دی آیتم منو و فرگمنت یکی باشه و همچنین نیازی به اتریبیوت menuCategory نیست. فقط توی متد onOptionsItemSelected با توجه به آی دی آیتم کلیک شده به فرگمنت مورد نظر navigate می کنیم.

۰ نظر موافقین ۰ مخالفین ۰ ۱۳ اسفند ۹۹ ، ۱۲:۵۳
میم دال

برای اینکه منوی pop up توسط navigation component کنترل بشه باید به نکات زیر توجه کرد:

۰ نظر موافقین ۰ مخالفین ۰ ۱۲ اسفند ۹۹ ، ۲۱:۳۲
میم دال

اگر کلاس داخلی استاتیک باشه nested class و اگر استاتیک نباشه inner class نام دارد. کلاس داخلی غیر استاتیک به تمامی فیلدها و متدهای کلاس بیرونی دسترسی دارد (یک instance از کلاس بیرونی دارد) ولی کلاس داخلی استاتیک به فیلدها و متدهای کلاس بیرونی دسترسی ندارد.

بهتره کلاس viewHolder در ریسایکلر ویو استاتیک تعریف بشه، چون اگر برای اداپتر دیگه ای مورد استفاده قرار بگیره ممکنه باعث لیک شدن مموری بشه.

 

۰ نظر موافقین ۰ مخالفین ۰ ۱۲ اسفند ۹۹ ، ۰۵:۴۵
میم دال

NavigationUI یکی از فیچرهای Navigation conponent هست که عنوان تولبار (یا همون اکشن بار) رو با تغییر فرگمنت تغییر میده و همچنین فلش Navigate up رو اضافه میکنه (بجز فرگمنت home).

۰ نظر موافقین ۰ مخالفین ۰ ۱۲ اسفند ۹۹ ، ۰۴:۴۵
میم دال

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

توی اکتیویتی مقصد یک Intent جدید تعریف میکنیم و دیتاها رو بهش متصل می کنیم و قبل از finish کردن setResult را قرار می دهیم.

۰ نظر موافقین ۰ مخالفین ۰ ۰۷ اسفند ۹۹ ، ۰۱:۵۰
میم دال

از کامپوننت ItemTouchHelper برای swipe یا move کردن آیتم های ریسایکلر ویو استفاده می شود. مثلا در کد زیر با swipe کردن به چپ یا راست، آیتم مورد نظر حذف خواهد شد. کد هایلایت شده نحوه معرفی این ویژگی به ریسایکلر ویو را نشان می دهد.

۰ نظر موافقین ۰ مخالفین ۰ ۰۷ اسفند ۹۹ ، ۰۰:۰۱
میم دال

DiffUtil یک کلاسی هست که برای ریسایکلر ویو تعریف شده و به کمک اون میشه ریسایکلر ویو رو آپدیت کرد. تا قبل از این برای آپدیت ریسایکلر ویو از notifydatasetchanged استفاده می کردیم که هزینه زیادی داره، چون به ازای هر آیتم متدهای onCreateViewHolder و onBindViewHolder فراخونی می شوند. اما DiffUtil پرفورمنس بهتره داشته و انیمیشن قشنگی به آیتم ها می دهد.

یک کلاس جدید ایجاد کرده و آن را از DiffUtil.Callback اکستند می کنیم. کلاس DiffUtil.Callback، کلاسی ابسترکت بوده که چهار متد ابسترکت دارد که می بایست پیاده سازی شود. اوور راید کردن متد getChangePayload اختیاری است که در ادامه توضیح داده می شود. 

۱ نظر موافقین ۰ مخالفین ۰ ۰۶ اسفند ۹۹ ، ۰۴:۱۵
میم دال