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

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

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

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

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

این یه پروژه ساده برای پیاده سازی انیمیشن Circular reveal بوده که جز مباحث متریال دیزاین هست و روی API21 جواب میده.

 

پروژه شبیه این لینک و این یکی لینک هست. یک FAB داره که با کلیک روی اون صفحه منو باز و بسته میشه.

 

پروژه چالش خاصی نداشت فقط اینکه کجا چه ویویی رو ویزیبل یا اینویزیبل کنی یه کم زمان برد.

 

 

 

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

CoordinatorLayout نسخه پیشرفته Frame layout هست. این لیوت انیمیشن های ویوها که مرتبط با متریال دیزاین هستن و همچنین اینتراکشن ها رو خیلی خوب مدیریت میکنه.

 

مثلا اگر FAB توی CoordinatorLayout باشه و اسنک بار نمایش داده بشه، FAB به صورت خودکار به سمت بالا هل داده میشه.

 

نکته جالب اینه که توی CoordinatorLayout هیچی نمیتونه روی FAB قرار بگیره :))

یعنی حتا اگر یه ویویی رو از قصد با FAB براش اوورلپ ایجاد کنیم بازم روی FAB نمیفته!

برای تست، یه تکست ویو با بک گراند solid روی FAB قرار دادم ولی بازم FAB رو کاور نکرد :))

 

نتیجه اخلاقی: FAB رو حتما توی CoordinatorLayout بذار.

 

 

یک الگوی متداول برای طراحی UI اینجوریه که روت رو CoordinatorLayout میذارن و یک ConstraintLayout و همچنین سایر المان های متریال دیزاین مثل FAB رو توش قرار میدن.

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

چند تا متد هست که میشه باهاشون ابعاد یک ویو رو به دست آورد:

 

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

Elevation به معنی ارتفاع بوده و یکی از مواردی است که توی متریال دیزاین مطرح شده.

همه ویوها این پراپرتی رو دارن و مثلا اگر به یک تکست ویو 5dp الویشن بدیم باعث میشه یه مقدار بالاتر از سطح بیاد و ارتفاع بگیره.

 

همین!

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

این پرمیشن های ران تایم دهن منو سرویس کرد :|

 

بعد از حدود یک سال تازه فهمیدم متد requestPermissions کل پرمیشن ها رو به صورت آرایه میگیره و پشت سر هم باکس های پرمیشن رو نشون میده. بعد از تموم شدن باکس ها، کال بک onRequestPermissionsResult فراخونی میشه و نتایج اکسپت شدن یا نشدن پرمیشن ها توی آرایه grantResult میاد.

 

با تلاش و کوشش فراوان :)) هلپر پرمیشن ها رو نوشتم. کد در gist

 

چرا سینگل تون ننوشتم؟ چون نمیشد! چرا؟ چون پرمیشن ها توی هر اکتیویتی اجرا میشن، یعنی لازمه هر جا لازم شد همون اکتیویتی (و نه کانتکس) رو بهش پاس بدم. بنابراین سینگل تون بودن بی معنیه.

 

لینک خوب استک اور فلو برای پرمیشن های ران تایم

۰ نظر موافقین ۰ مخالفین ۰ ۰۸ تیر ۹۹ ، ۰۶:۳۲
میم دال

کلاس سینگل تون ارسال SMS

 

اینم زیاد پیچیده نیست. فقط لازمه متد init توی کلاس اپلیکیشن فراخونی بشه.

 

کد در gist

 

۰ نظر موافقین ۰ مخالفین ۰ ۰۸ تیر ۹۹ ، ۰۶:۲۱
میم دال

کلاس سینگل تون SharedPreferences

 

قبلا در مورد آموزشش نوشتم. این API خیلی پر کاربرده و لازمه بهش مسلط باشم.

 

این API رو به صورت سینگل تون نوشتم: کد در gist

 

تنها نکتش اینه که باید متد init توی کلاس کاستوم اپلیکیشن فراخونی بشه. یعنی کانتکس اپلیکیشن بهش میدیم.

 

۰ نظر موافقین ۰ مخالفین ۰ ۰۸ تیر ۹۹ ، ۰۶:۰۹
میم دال

این پروژه ساده ست و فقط اکتیویتی های ثبت نام و لاگین داره و هدفش اینه که بگه چجوری صفحه ثبت نام فقط یک بار نشون داده بشه.

 

تنها نکات این پروژه کلاس های سینگل تون و پرمیشن های ران تایم هست که در ادامه میگم.

 

نکته: برای اینکه فوکوس روی ادیت تکست مورد نظرمون باشه به صورت زیر مینویسیم:

 

۰ نظر موافقین ۰ مخالفین ۰ ۰۸ تیر ۹۹ ، ۰۶:۰۵
میم دال

در حین اجرای پروژه دهم به یه ارور عجیبی برخوردم که بار آموزشی خوبی داشت.

 

۰ نظر موافقین ۰ مخالفین ۰ ۰۶ تیر ۹۹ ، ۲۲:۵۲
میم دال

در این قسمت کد اسنک بار آورده شده.

 

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