Барои анимаи гузариш байни экранҳо чӣ бояд кард?
sobes.tech AI
Ҷавоб аз AI
Барои анимацияҳои гузариш байни экранҳо дар Android чанд роҳҳоро истифода бурда мешавад:
-
Анимацияҳои фаъолият (Activity Animations): Дар мавзӯъҳо ё барномавӣ муайян карда мешаванд. Имкон медиҳанд, ки анимацияҳои стандартии воридшавӣ ва баромадро барои фаъолиятҳо муайян кунед.
override fun startActivity(intent: Intent) { super.startActivity(intent) overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left) } override fun finish() { super.finish() overridePendingTransition(R.anim.slide_in_left, R.anim.slide_out_right) }Файлҳои анимация (масалан,
res/anim/slide_in_right.xml):<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="100%" android:toXDelta="0%" android:duration="@android:integer/config_shortAnimTime" /> </set> -
Анимацияҳои фрагментҳо (Fragment Animations): Дар вақти иҷрои транзаксияи фрагмент муайян карда мешаванд.
supportFragmentManager.beginTransaction() .setCustomAnimations(R.anim.fade_in, R.anim.fade_out, R.anim.fade_in, R.anim.fade_out) .replace(R.id.container, fragment) .commit() -
Анимацияҳои унсурҳои муштарак (Shared Element Transitions): Имкон медиҳанд, ки гузариши як ё чанд View-ро байни экранҳо аниматсия кунанд, таъсири пайдарпай эҷод мекунанд. Талаб мекунад, ки дастгирии transition дар мавзӯъ фаъол карда шавад.
Дар фаъолияти асосӣ:
val options = ActivityOptionsCompat.makeSceneTransitionAnimation( this, sharedView, // View барои анимация ViewCompat.getTransitionName(sharedView) // Ном барои пайвандӣ ) startActivity(intent, options.toBundle())Дар фаъолияти қабулкунанда:
// Дар методи onCreate ё onViewCreated (барои фрагмент) supportPostponeEnterTransition() // Дароз кардани анимацияи воридшавӣ, то View-ҳо омода шаванд // Пас аз омодагӣ, вақте View-ҳо омода шуданд (масалан, дар боркунии тасвир): supportStartPostponedEnterTransition()Дар XML-роҳбарии ҳар ду экран:
<ImageView android:id="@+id/imageView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:transitionName="image_transition" /> <!-- Ном барои пайвандӣ --> -
Component Animations (Navigation Component): Агар Navigation Component истифода шавад, анимацияҳои гузаришро метавон дар графи навигатсия мустақиман муайян кард.
<action android:id="@+id/action_fragmentA_to_fragmentB" app:destination="@id/fragmentB" app:enterAnim="@anim/slide_in_right" app:exitAnim="@anim/slide_out_left" app:popEnterAnim="@anim/slide_in_left" app:popExitAnim="@anim/slide_out_right" />
Интихоби усул ба сохтори истифодашуда (Activity, Fragments, Navigation Component) ва эффектҳои лозимӣ вобаста аст.