Elevation به معنی ارتفاع بوده و یکی از مواردی است که توی متریال دیزاین مطرح شده.
همه ویوها این پراپرتی رو دارن و مثلا اگر به یک تکست ویو 5dp الویشن بدیم باعث میشه یه مقدار بالاتر از سطح بیاد و ارتفاع بگیره.
همین!
این پرمیشن های ران تایم دهن منو سرویس کرد :|
بعد از حدود یک سال تازه فهمیدم متد requestPermissions کل پرمیشن ها رو به صورت آرایه میگیره و پشت سر هم باکس های پرمیشن رو نشون میده. بعد از تموم شدن باکس ها، کال بک onRequestPermissionsResult فراخونی میشه و نتایج اکسپت شدن یا نشدن پرمیشن ها توی آرایه grantResult میاد.
با تلاش و کوشش فراوان :)) هلپر پرمیشن ها رو نوشتم. کد در gist
چرا سینگل تون ننوشتم؟ چون نمیشد! چرا؟ چون پرمیشن ها توی هر اکتیویتی اجرا میشن، یعنی لازمه هر جا لازم شد همون اکتیویتی (و نه کانتکس) رو بهش پاس بدم. بنابراین سینگل تون بودن بی معنیه.
کلاس سینگل تون ارسال SMS
اینم زیاد پیچیده نیست. فقط لازمه متد init توی کلاس اپلیکیشن فراخونی بشه.
کلاس سینگل تون SharedPreferences
قبلا در مورد آموزشش نوشتم. این API خیلی پر کاربرده و لازمه بهش مسلط باشم.
این API رو به صورت سینگل تون نوشتم: کد در gist
تنها نکتش اینه که باید متد init توی کلاس کاستوم اپلیکیشن فراخونی بشه. یعنی کانتکس اپلیکیشن بهش میدیم.
کد جاوای قسمت آزمون سخت نبود. فقط روش حل تصحیح آزمون تستی رو توضیح میدم.
برای هر تکست ویوی که یک گزینه رو نشون میده یک لیسنر مینویسیم و بهش تگ متناظر با شماره گزینه رو اختصاص میدیم.
یک آرایه به اسم answerSheet ساخته و گزینه های درست رو به ترتیب توش میریزیم.
هر گزینه ای که کلیک شد تگش رو میگیریم و با عضو متناظر توی آرایه چک میکنیم، اگر درست بود یعنی پاسخ صحیح بوده و در غیر این صورت پاسخ اشتباه بوده.
حقیقتا سر طراحی لی لوت این صفحه برای ریسپانسیو بودنش دهنم سرویس شد :| مخصوصا سر چهار تا گزینش :|
1. 4 ضلع صفحه رو با گاید لاین به اندازه 1 درصد حاشیه گذاری کردم.
2. با اندازه های 10، 30، 86 درصد به چهار قسمت تبدیلش کردم.
صفحه منو فقط چهار تا دکمه داره. برای اینکه دکمه ها وضعیت خوبی داشته باشن از chain استفاده کردم و ارتفاع رو wrap قرار دادم.
استایل chain از نوع spread هست با مارجین 8dip.
دلیل مارجین اینه که توی ال سی دی های کوچیکتر مطمئن باشم دکمه ها از هم حداقل 8dip فاصله دارن.
میشد بجای wrap بهشون weight بدم. (البته باید ارتفاع رو 0dp قرار میدادم). ولی خوشگل نمیشد. دکمه ها تپل میشدن :(
برای width هم با percent مقدار 0.6 رو دادم.
کد جاوا:
تنها نکته ای که داشت قسمت "تماس با ما" هست که از اکشن ویو استفاده شده تا یک لینک تلگرام رو باز کنه.