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

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

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

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

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

Modifier یکی از مهم ترین Composableها هست که میتونه ویژگی های زیادی رو برای دیزاین در اختیار ما بذاره. در compose، ترتیب (order) قرار گرفتن پراپرتی های Modifier مهمه و میتونه نتیجه رو تغییر بده. این مثال نشون میده که چجوری جا به جایی padding میتونه در جواب نهایی تاثیر داشته باشه.

 

Modifier کاستوم شده

fun Modifier.socialMedia(): Modifier = composed {
    if (isSystemInDarkTheme()) {
        this
            .border(shape = RoundedCornerShape(16.dp), width = 2.dp, color = BlueGray)
            .background(Color.Transparent)

    } else {
        this
            .border(shape = RoundedCornerShape(16.dp), width = 2.dp, color = LightGray)
            .background(LightBlueWhite)

    }

}

this همون آنجکت Modifier هست که میتونه نوشته نشه.

 

اطلاعات بیشتر

۰ نظر موافقین ۰ مخالفین ۰ ۲۶ بهمن ۰۲ ، ۰۴:۱۷
میم دال
fun TextCompose_3() {

    Box(
        modifier = Modifier
            .fillMaxSize()
            .background(Color.Black),
        contentAlignment = Alignment.Center,
    ) {
        val annotatedString = buildAnnotatedString {
            blueGradientText("Hello")
            append("\n\n")
            pinkBlueGradientText("Maryam")
            append("\n\n")

        }

        Text(text = annotatedString)
    }
}

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

TextButton: 

 

TextButton(onClick = { /*TODO*/ }) {
                        Text(text = "Click!")
                    }

 

IconButton:

   IconButton(onClick = { /*TODO*/ }) {
                        Icon(painter = painterResource(id = R.drawable.directions_bike_24), contentDescription = null)

                    }

 

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

یک Button که در وسط یک Box قرار گرفته است.

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

در کاتلین دو نوع لیست mutable و immutable وجود داره.

لیست immutable:

 val mylist = listOf("1","2","3")

 

لیست mutable:

سه روش برای ایجاد این نوع لیست وجود داره:

        val mylist = ArrayList<String>()

        val mylist1 = mutableListOf<String>()

        val mylist2 = arrayListOf<String>()

این سه تا فرقی با هم ندارن.

 

 

 

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

آرایه:

دو نوع روش برای ایجاد آرایه وجود داره. در روش اول باید سایز آرایه و مقدار اولیه اون مشخص بشه. در روش دوم فقط باید مقدار اولیه مشخص بشه. هر دو mutable هستن، یعنی میشه یه عضو از آرایه را تغییر داد. اما طول آرایه قابل تغییر نیست.

 

val myArray = Array<Int>(5){0}

val myArray = arrayOf("1", "2")

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

کلاس جنریک:

class ArrayUtil<T>(private val array : Array<T>) {

    fun findElement(element : T, foundElement:(index: Int, element: T?)->Unit){

        for(i in array.indices){

            if(array[i] == element){
                foundElement(i, element)
                return
            }
        }

        foundElement(-1, null)
        return

    }

}

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

gradle یک ابزار بیلد اتوماتیک هست برای بیلد اپلیکیشن ها، مثل اپ های اندرویدی. توسط پلاگین gradle امکان استفاده از gradle در اندروید استودیو فراهم می شود.

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

1. توسط پلاگین gradle امکان استفاده از gradle در اندروید استودیو ایجاد میشه. پس ما برای هر پروژه باید پلاگین gradle و خود gradle رو اضافه کنیم.

 

2. دو تا build.gradle داریم. یکی در "کل پروژه" و یکی "برای هر ماژول". ممکنه پروژه ما چند تا ماژول داشته باشه، در این صورت به ازای هر ماژول یک build.gradle داریم که توش اطلاعات در مورد پلاگین ها، وابستگی ها و مین و ماکس sdk و کامپایل و اینا توضیح داده شده.

توی build.gradle در سطح پروژه، classpathها (مثل کاتلین، gradle، هیلت و ...) آورده میشه و یک سری تسک هایی که gradle انجام میده رو میشه در این قسمت آورد. این تنظیمات برای کل پروژه اعمال میشه.

نکته: هر چی توی classPath آوردیم، پلاگین هم داره!

 

3. اگر کل پروژه به یه وابستگی نیاز داشته باشه در buildScript در قالب classPath بهش میدیم. اگر ماژول به وابستگی نیاز داشته باشه در dependencies بهش میدیم.

 

 

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

.

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