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

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

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

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

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

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

همون لیوتی که با اسکرول کردن به سمت پایین آیکون پراگرس بار رو نشون میده (مشابه اینستاگرام)

نحوه استفاده:

 

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

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

 Persistent Bottom Sheet و Modal Bottom Sheet

 

Persistent Bottom Sheet

 

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

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

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

واقعا این اندروید استودیو فازش چیه :|

 

setNavigationItemSelectedListener کار نمیکرد، سرچ کردم راه حل هاش اینا بود:

 

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

برای پیاده سازی این ویو حتما باید از drawerlayout استفاده بشه. 

کد XML: (به اتریبیوت های هایلایت شده دقت شود)

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

کد Drawer Layout - این کد شامل نویگیشن ویو هست

 

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

اگر دو تا toast پشت سر هم داشته باشیم، یک پشته (queue) تشکیل میشه و پس از نشون دادن اولی، دومی اجرا میشه.

 

اما اسنک بار اینجوری نیست. اگر دو تا پشت سر هم بذاریم دومی اجرا میشه فقط

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

 

Snackbar snackbar = Snackbar.make(view, "salam", Snackbar.LENGTH_SHORT);

snackbar.addCallback(new BaseTransientBottomBar.BaseCallback<Snackbar>() {
    @Override
    public void onDismissed(Snackbar transientBottomBar, int event) {

        Snackbar.make(view, "bye...bye", Snackbar.LENGTH_SHORT).show();

    }

});
snackbar.show();

 

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

پس از تموم شدن مدت نشون دادن اولی، دومی اجرا میشه.

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

توصیه شده از bottom nav با فریم لیوت به کار گرفته بشه و نه ویو پیجر.

 

کد XML:

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

با کد زیر در پروژه collapsing toolbar رنگ غالب بک گراند تولبار پیدا شده و برای تولبار ست میشود.

 

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.bg2);
Palette.from(bitmap).generate(new Palette.PaletteAsyncListener() {
    @Override
    public void onGenerated(@Nullable Palette palette) {
        if (palette != null) {
            collapsingToolbar.setContentScrimColor(palette.getMutedColor(R.attr.colorPrimary));
        }
    }
});

 

نکته: دپندنسی زیر باید در گریدل اضافه شه:

 

implementation 'androidx.palette:palette:1.0.0'
۰ نظر موافقین ۰ مخالفین ۰ ۰۲ شهریور ۹۹ ، ۰۱:۲۰
میم دال

با اضافه کردن کد زیر در اکتیویتی میشه فلش بک رو توی تولبار که بهش HomeAsUp گفته میشه رو اضافه کرد.

actionBar.setDisplayHomeAsUpEnabled(true);

تغییر آیکون این دکمه:

 

actionBar.setHomeAsUpIndicator(R.drawable.ic_back);

 

جهت ست کردن تسک برای این دکمه:

روش اول:

@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {

    if(item.getItemId()==android.R.id.home){

        Toast.makeText(this, "home as up is clicked!", Toast.LENGTH_SHORT).show();
        onBackPressed();
    }

    return super.onOptionsItemSelected(item);
}

 

اینجا با تاچ کردن این دکمه، toast نمایش داده میشه و اکتیویتی به عقب برمیگرده (کار دکمه بک انجام میشه)

 

روش دوم:

اوور راید کردن متد زیر در اکتیویتی (بنظرم روش بهتریه):

@Override
public boolean onSupportNavigateUp() {
    onBackPressed();
    return super.onSupportNavigateUp();
}

توجه: اگر از پاپ آپ منو استفاده بشه، روش دوم جواب نمیده و باید از روش اول استفاده کرد (یعنی باید توی سوییچ همراه با باتن های منو تسک این باتن رو هم ست کنیم)

 

نکته: اگر از تولبار استفاده میشه (که اکثر اوقات میشه و تم NoActionBar هست) در این صورت حتما اول باید 

 

setSupportActionBar(toolbar);

نوشته بشه وگرنه ارور نال پوینتر میده چون اکشن باری وجود نداره.

 

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

کد XML ساخت appBarLayout

 

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