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

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

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

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

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

۱۵ مطلب در شهریور ۱۳۹۹ ثبت شده است

اگر دو تا 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();

 

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

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

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

همان طور که مستحضر هستید، آیتم های منوی پاپ آپ نمیتونن آیکون داشته باشن. برای حل این موضوع، یک آیتم برای منو میسازیم و به آیکونش وکتور سه نقطه میدیم. توی این آیتم یک زیر منو تعریف میکنیم. به صورت زیر:

 

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <item android:title="menu"
        android:id="@+id/main_menu_two"
        android:icon="@drawable/ic_more_vert"
        app:showAsAction="always">

        <menu>

            <item android:title="item 1"
                android:icon="@drawable/ic_favorite"/>

            <item android:title="item 2"
                android:icon="@drawable/ic_favorite"/>

            <item android:title="item 3"
                android:icon="@drawable/ic_favorite"/>

            <item android:title="item 4"
                android:icon="@drawable/ic_favorite"/>

        </menu>

    </item>

</menu>

 

خروجی:

 

 

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

مثل منوی پاپ آپ، توی فایل XML منو، کد زیر رو مینویسیم:

 

<item
    android:icon="@drawable/ic_search"
    android:title="search"
    android:id="@+id/search"
    app:actionViewClass="androidx.appcompat.widget.SearchView"
    app:showAsAction="always" />

 

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

این اتریبیوت باید برای childهای مستقیم coordinator layout تعریف بشه. مثلا اگر برای nestedScrollView بعد از appBar بذاریم، باعث میشه ویوها رو بعد از appBar قرار بده. اگر نباشه، ویوها از اول صفحه قرار میگیرن.

 

تا الآن برای nestedScrollView که بعد از appBar قرار گرفته و bottomSheet این اتریبیوت رو تعریف کردم.

 

نکته: برای coordinator layout، اسکرول ویو کار نمیکنه! حتما باید nestedScrollView تعریف بشه.

 

توضیحات تکمیلی - لینک خوبیه

 

نمونه 1

 

نمونه 2

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

میشه برای بک گراند لیوت (یا ویو - ولی لیوت روت بهتره، چون برای همه ویوهای چایلد اعمال میشه) اتریبیوت زیر رو تعریف کرد: (البته باید ویو clickable باشه)

 

android:background="?android:attr/selectableItemBackground"

 

اینجوری باعث میشه وقتی روی آیتم میریم یه سایه خاکستری روش قرار بگیره و زیبا شه! بهش Ripple effect میگن.

 

(میشه برای اتریبیوت foreground هم این افکت رو قرار داد. نمیدونم فرقش چیه)

 

مدل های دیگه ولی این از همه بهتر و سازگارتره

 

برای کارد ویو بعد از true قرار دادن clickable، به صورت زیر میشه این افکت رو ایجاد کرد:

android:foreground="?android:attr/selectableItemBackground"
۰ نظر موافقین ۰ مخالفین ۰ ۰۶ شهریور ۹۹ ، ۲۱:۵۳
میم دال

اگر ویوی ما به صورت ذاتی قابل کلیک نباشه، مثل webView یا View یا کارد ویو و اینا باید این اتریبیوت رو براش true بذاریم تا توی کد بشه onClickListener واسش نوشت.

 

یعنی میگیم این ویو باید به کلیک ها پاسخ بده.

 

android:clickable="true"
۰ نظر موافقین ۰ مخالفین ۰ ۰۶ شهریور ۹۹ ، ۰۳:۵۲
میم دال

نکات:

 

1. پنجره پاپ آپ رو ترنسپرنت میکنیم. (تعریف یک تم جداگانه برای اکتیویتی پاپ آپ)

2. ابعاد صفحه رو میگیریم و میگیم توی یه درصدی از صفحه لیوت نشون داده بشه

همین!

 

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

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

 

کد XML:

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

توی اندروید دو تا API برای دوربین داریم، یکیش همینه و دومی camera 2 هست و سخت تره و ما بهش کاری نداریم!

 

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

 

کد زیر برای باز کردن دوربین هست:

 

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

آیا میدانید متد ()getTextSize سایز فونت تکست ویو را به صورت پیکسل نشان میدهد و برای تبدیل پیکسل به SP از این روش استفاده میشود؟

 

منم نمیدونستم!

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