نسرین محمدزاده
نسرین محمدزاده
خواندن ۲ دقیقه·۵ سال پیش

استفاده از shared elements در اندروید

تو این مقاله قصد دارم یه مثال ساده برای استفاده از ویژگی shared elements تو اندروید رو توضیح بدم. همونطور که میدونید این ویژگی از اندروید 5 به بعد به این سیستم عامل اضافه شد و بعد از اون شاهد انیمیشن ها و جابه جایی های قشنگ تری تو نرم افزار ها بودیم.

برای این کار مرحله اول اضافه کردن یک ImageView تو اکتیویتی اولمونه

activity_main.xml
activity_main.xml


چند تا نکته رو باید اینجا بهش توجه کنید:

اول اینکه چون این ویژگی از اندروید 5 به بعد اضافه شده اگر شما برای برنامتون minSdkVersion رو روی مقداری کمتر از 21 بگذارید مجبورید tools:targetApi="lollipop" حتما مقدار دهی کنید.

نکته بعدی هم خصوصیت transitionName هست که یه اسم به دلخواهتون بهش میدید و برای بقیه فرایند هم از این اسم استفاده میشه درواقع این خصیصه هست که مشخص میکنه المان مورد نظر تو مبدا باید تبدیل بشه به کدوم المان تو مقصد.

در ادامه یه imageView هم تو اکتیویتی مقصدمون قرار میدیم

activity_second.xml
activity_second.xml

همونجور که میبینید خصوصیت transitionNameرو هم اینجا دقیقا همون مقداری رو بهش دادیم که تو اکتیویتی اول داده بودیم

علاوه بر این ها باید خط زیر رو هم تو style برنامه باید اضافه کنید:

styles.xml
styles.xml

توجه کنید که مقدار tools:targetApi="lollipop" رو هم اینجا باید اضافه کنید در صورتی که minSdkVersion رو مقداری کمتر از 21 قرار دادید در غیر این صورت نیازی به اضافه کردنش ندارید.

حالا مرحله اخر اضافه کردن کد مربوط به جابه جایی بین دو تا اکتیویتی هست:

MainActivity.kt
MainActivity.kt

خب اینجا باید تو باکس شماره 1 که مشخص شده اون transitionName که قبلا مشخص کرده بودیم رو بهش پاس بدیم که من مقدار imageرو براش گذاشته بودم.

تو باکس شماره 2 هم باید id مربوط به imageView تو اکتیویتی مبدا رو بهش پاس بدیم که من مقدار image_view رو بهش دادم.

SecondActivity.kt
SecondActivity.kt

داخل اکتیویتی دوم هم چیز خاصی نیاز نیست بگذارید.

و تمام:) حالا میتونید برنامه رو run کنید و نتیجه رو ببینید.

کدهای مربوط به این مثال رو هم تو لینک زیر میتونید بهش دسترسی داشته باشید:

https://github.com/NasrinMohammadzadeh/shared-elements


اندرویدsharedelementskotlinandroid
شاید از این پست‌ها خوشتان بیاید