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

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

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

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

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

۲۵۶ مطلب با موضوع «آموزش اندروید» ثبت شده است

توی اندروید استودیوی 4 به بعد باتن پیش فرض باتن متریال دیزاین هست. بنابراین اگر برای کاستوم کردن باتن از روش قبلی استفاده کنیم یعنی shape بسازیم و با اتریبیوت background بدیم باتن تغییری نمیکنه. این روش برای باتن هایی که غیر متریال هستن جواب میده.

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

 

1. استفاده از باتن غیر متریال و shape

این باتن توی XML اینجوری فراخونی میشه:

android.widget.Button

 

2. استفاده از باتن متریال و کاستوم کردن باتن به صورت زیر:

  • app:rippleColor: The colour to be used for the button ripple effect
  • app:backgroundTint: Used to apply a tint to the background of the button. If you wish to change the background color of the button, use this attribute instead of background.

  • app:strokeColor: The color to be used for the button stroke

  • app:strokeWidth: The width to be used for the button stroke
  • app:cornerRadius: Used to define the radius used for the corners of the button

 

منبع

 

 

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

توی معماری MVP، لایه های Model و Presenter نباید Context داشته باشن.

توی لایه Model دیتا رو از API یا دیتابیس میگیریم و ممکنه به Context نیاز پیدا کنیم.

راه حل این مشکل اینه که کلاسی که به Context نیاز داره رو توی یک لایه دیگه abstract کنیم.

اینجا بیشتر توضیح داده.

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

برای اینکه آیتم های ریسایکلر ویو از هم فاصله داشته باشن (معمولا آیتم ها کارد ویو هستن) در rootکه همون کارد ویو هست اتریبیوت زیر را اضافه میکنیم:

 

app:cardUseCompatPadding="true"

 

 

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

فرمت تاریخ هایی که از سروی دریافت میکنیم معمولا به صورت زیر است:

2020-03-23T13:58:53Z

T جدا کننده بوده و بیانگر اینه که در ادامه مقدار زمان آمده است. احتمالا مخفف time هست.

Z بیانگر UTC timezone هست.

 

این نوع بیان تاریخ استاندارد ISO 8601 است.

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

مقاله جالبیه

 

یه قرارداد منطقی برای نامگذاری ریسورس ها معرفی میکنه

 

ترجمش

 

ولی من اصلشو ترجیح میدم :)

۰ نظر موافقین ۰ مخالفین ۰ ۲۴ آذر ۹۹ ، ۰۳:۴۹
میم دال

دو نوع BottomSheet داریم:

 Persistent Bottom Sheet و Modal Bottom Sheet

 

Persistent Bottom Sheet

 

این جزئی از لیوت هست.

برای تعریف شی ای از جنس BottomSheetBehavior تعریف کرده و به صورت زیر مقدار دهی میکنیم:

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

برای اینکه یک فیلد سریالایز و دیسریالایز نشود، دو روش وجود دارد:

 

1. اون فیلد رو transient تعریف کنیم. اینجوری:

private transient Boolean isDeveloper;

در این صورت این فیلد در سریالایز وجود نخواهد داشت و در دیسریالایز حتا اگر در جیسون مقدار داشته باشد اما نال خواهد گرفت.

 

2. روش بهتر که استفاده از انوتیشن Expose است.

@Expose(serialize = true, deserialize = false)
private String email;

اینجا میگیم سریالایز بشه ولی دیسریالایز نشه. البته میشه آرگومان این انوتیشن رو خالی گذاشت. در این صورت هر دو کار انجام میشه.

 

هنگام استفاده از این انوتیشن Gson باید اینجوری تعریف شه:

Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();

نکته: با این روش تعریف Gson، اگر فیلدی انوتیشن Expose رو نداشته باشه، سریالایز و دیسریالایز نخواهد شد.

 

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