از این کتابخانه برای راحت شدن از شر findViewByID ها استفاده میشود.
خلاصه آموزش:
با نوشتن کد زیر یک تکست ویو به آی دی tv_noNetwork بایند میشود و در برنامه توسط tv_noNetwork به این ویو دسترسی داریم.
از این کتابخانه برای راحت شدن از شر findViewByID ها استفاده میشود.
خلاصه آموزش:
با نوشتن کد زیر یک تکست ویو به آی دی tv_noNetwork بایند میشود و در برنامه توسط tv_noNetwork به این ویو دسترسی داریم.
همون لیوتی که با اسکرول کردن به سمت پایین آیکون پراگرس بار رو نشون میده (مشابه اینستاگرام)
نحوه استفاده:
برای ساخت آیکون لانچر از image asset استفاده میکنیم. در این صورت، مدل های rounded و circle ساخته خواهد شد.
توضیحات کامل اینجا گفته شده.
سایز عکس آیکون ها با کیفیت های مختلف:
برای اینکه بدونیم در حال حاضر دیوایس به اینترنت وصل هست یا خیر از کد زیر استفاده می شود:
private boolean isNetworkConnected() {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
return cm.getActiveNetworkInfo() != null && cm.getActiveNetworkInfo().isConnected();
}
نکته مهم اینکه در منیفست باید پرمیشن زیر اضافه شده باشه:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
متدی به نام "onKeyDown" داریم که میشه باهاش هر کلید سخت افزاری که کاربر فشار میده detect کرد.
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
// back was pressed
return true;
} else if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
// volume up was pressed
}
return super.onKeyDown(keyCode, event);
}
توی اندروید استودیوی 4 به بعد باتن پیش فرض باتن متریال دیزاین هست. بنابراین اگر برای کاستوم کردن باتن از روش قبلی استفاده کنیم یعنی shape بسازیم و با اتریبیوت background بدیم باتن تغییری نمیکنه. این روش برای باتن هایی که غیر متریال هستن جواب میده.
برای حل این مشکل دو راه هست:
1. استفاده از باتن غیر متریال و shape
این باتن توی XML اینجوری فراخونی میشه:
android.widget.Button
2. استفاده از باتن متریال و کاستوم کردن باتن به صورت زیر:
app:rippleColor: The colour to be used for the button ripple effectapp: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 strokeapp:cornerRadius: Used to define the radius used for the corners of the button
توی معماری MVP، لایه های Model و Presenter نباید Context داشته باشن.
توی لایه Model دیتا رو از API یا دیتابیس میگیریم و ممکنه به Context نیاز پیدا کنیم.
راه حل این مشکل اینه که کلاسی که به Context نیاز داره رو توی یک لایه دیگه abstract کنیم.
اینجا بیشتر توضیح داده.