Кадом хусусиятҳоро метавонед ҳамчун васеъкунӣ дар Android илова кунед?
sobes.tech AI
Ҷавоб аз AI
Дар таҳияи Android, васеъкунии функсияҳо (extension functions) ва хосиятҳо (properties) имкон медиҳанд, ки функсионалияти нав ба синфҳои мавҷуда илова карда шавад, бидуни мерос ё истифодаи декораторҳо. Ин махсусан дар кор бо синфҳои стандартии SDK муфид аст.
Хосиятҳои васеъшуда (Extension Properties) хосиятҳое мебошанд, ки мо метавонем ба синфҳои мавҷуда илова кунем. Онҳо ҳолатро нигоҳ намедоранд, арзиши ҳисобшавандаашон аз геттер муайян карда мешавад.
Масолҳои истифодаи хосиятҳои васеъшуда дар Android:
-
Осон кардани дастрасӣ ба LayoutInflater:
// Илова кардани хосияти васеъшуда барои дастрасӣ ба LayoutInflater val Context.layoutInflater: LayoutInflater get() = LayoutInflater.from(this)Акнун метавонед
context.layoutInflater-ро ба ҷоиLayoutInflater.from(context)истифода баред. -
Хосияти кӯтоҳ барои пинҳон кардани View:
// Хосияти васеъшуда барои гузоштани намоёнӣ ба View дар GONE var View.isVisibleGone: Boolean get() = visibility == View.VISIBLE // Геттер барои санҷиши ҳолати ҳозира set(value) { // Сеттер барои гузоштани ҳолат visibility = if (value) View.VISIBLE else View.GONE }Акнун метавонед
view.isVisibleGone = false-ро барои пинҳон кардани View истифода баред. -
Гирифтани андозаи экран дар DP:
// Хосияти васеъшуда барои гирифтани паҳнои экран дар DP val Context.screenWidthInDp: Int get() = resources.displayMetrics.widthPixels / resources.displayMetrics.density.toInt()Мисол:
context.screenWidthInDp. -
Дастрасӣ ба SharedPreferences:
// Хосияти васеъшуда барои гирифтани SharedPreferences бо номи муайян fun Context.sharedPreferences(name: String): SharedPreferences = getSharedPreferences(name, Context.MODE_PRIVATE)Гарчанде ки ин функсия аст, онро одатан ҳамчун хосият барои дастрасии қулай истифода мебаранд:
context.sharedPreferences("my_prefs").
Мавзӯъҳои муҳим дар бораи хосиятҳои васеъшуда:
- Онҳо наметавонанд backing fields дошта бошанд.
- Онҳо бояд ё танҳо бо геттер (барои хондан) ё бо геттер ва сеттер (барои хондан ва навишт) муайян карда шаванд.
- Онҳо ҳамчун методҳои статикӣ компилируются, бинобар ин, даъваташон тавассути синф-ҳолдер анҷом дода мешавад.
Дар маҷмӯъ, ҳамчун васеъкунӣ дар Android, шумо метавонед ҳар хосияти ҳисобшавандаро илова кунед, ки мантиқан ба синфи мавҷуда тааллуқ дорад ва истифодаи онро осон мекунад, бо роҳи парҳез аз сохтани функсияҳои ё синфҳои ёрирасон.