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

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

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

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

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

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

بنده با یک چالش جدید در پرمیشن رو به رو شدم و اونم چیزی نیست جز shouldShowRequestPermissionRationale!

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

 

وقتی برای اولین بار باکس پرمیشن نشون داده میشه این متد false میده. توی این باکس یه تیکی هست که میگه دیگه این پرمیشن رو نشون نده. اگر کاربر این تیک رو بزنه دیگه باکس پرمیشن رو نشون نمیده و باید از طریق ستینگ پرمیشن رو enable کنه. در این حالت این متد false میده. ولی اگر این تیک رو نزنه این متد true میده.

 

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

برای پیاده سازی این ویو حتما باید از 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();

 

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

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

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

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

 

<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. ابعاد صفحه رو میگیریم و میگیم توی یه درصدی از صفحه لیوت نشون داده بشه

همین!

 

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