আইসেটিকে অ্যাডাপ্টারে বেঁধে রাখা হলে পুনর্ব্যবহারযোগ্য আইটেমগুলি অ্যানিমেটিং করা সেরা ধারণা নাও হতে পারে কারণ এটি পুনর্ব্যবহারযোগ্য আইটেমগুলিকে বিভিন্ন গতিতে অ্যানিমেট করতে পারে। আমার ক্ষেত্রে, পুনর্ব্যবহারযোগ্য পর্যালোচনা শেষে আইটেমটি দ্রুত তাদের অবস্থানের সাথে সঞ্চারিত করে তারপরে শীর্ষে থাকা ব্যক্তিদের হিসাবে শীর্ষে থাকা ব্যক্তিদের আরও ভ্রমণ করতে হবে যাতে এটি অস্বচ্ছ লাগায় look
আমি প্রতিটি আইটেমটিকে পুনর্ব্যবহারযোগ্যতে অ্যানিমেট করার জন্য যে মূল কোডটি ব্যবহার করেছি তা এখানে পাওয়া যাবে:
http://frogermcs.github.io/Instagram-with-Material-Design-concept-is-getting-real/
তবে লিঙ্কটি ভেঙে যাওয়ার পরে আমি কোডটি অনুলিপি করে আটকান।
পদক্ষেপ 1: এটি আপনার অনক্রিট পদ্ধতিতে সেট করুন যাতে আপনি নিশ্চিত হন যে অ্যানিমেশনটি কেবল একবার চালানো হয়েছে:
if (savedInstanceState == null) {
pendingIntroAnimation = true;
}
পদক্ষেপ 2: আপনি অ্যানিমেশনটি শুরু করতে চান এমন পদ্ধতিতে আপনাকে এই কোডটি লাগাতে হবে:
if (pendingIntroAnimation) {
pendingIntroAnimation = false;
startIntroAnimation();
}
লিঙ্কটিতে, লেখক সরঞ্জামদণ্ডের আইকনগুলি অ্যানিমেট করছেন, তাই তিনি এটিকে এই পদ্ধতির ভিতরে রেখেছেন:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
inboxMenuItem = menu.findItem(R.id.action_inbox);
inboxMenuItem.setActionView(R.layout.menu_item_view);
if (pendingIntroAnimation) {
pendingIntroAnimation = false;
startIntroAnimation();
}
return true;
}
পদক্ষেপ 3: এখন সূচনাপ্রযুক্তি অ্যানিমেশন () এর জন্য যুক্তিটি লিখুন:
private static final int ANIM_DURATION_TOOLBAR = 300;
private void startIntroAnimation() {
btnCreate.setTranslationY(2 * getResources().getDimensionPixelOffset(R.dimen.btn_fab_size));
int actionbarSize = Utils.dpToPx(56);
toolbar.setTranslationY(-actionbarSize);
ivLogo.setTranslationY(-actionbarSize);
inboxMenuItem.getActionView().setTranslationY(-actionbarSize);
toolbar.animate()
.translationY(0)
.setDuration(ANIM_DURATION_TOOLBAR)
.setStartDelay(300);
ivLogo.animate()
.translationY(0)
.setDuration(ANIM_DURATION_TOOLBAR)
.setStartDelay(400);
inboxMenuItem.getActionView().animate()
.translationY(0)
.setDuration(ANIM_DURATION_TOOLBAR)
.setStartDelay(500)
.setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
startContentAnimation();
}
})
.start();
}
আমার পছন্দসই বিকল্প:
আমি বরং পুনর্ব্যবহারযোগ্য ভিতরে থাকা আইটেমগুলির পরিবর্তে পুরো পুনর্ব্যবহারযোগ্য দৃশ্যটি অ্যানিমেট করব।
পদক্ষেপ 1 এবং 2 একই থাকে।
পদক্ষেপ 3 এ, আপনার এপিআই কলটি আপনার ডেটা সহ ফিরে আসার সাথে সাথে আমি অ্যানিমেশনটি শুরু করব।
private void startIntroAnimation() {
recyclerview.setTranslationY(latestPostRecyclerview.getHeight());
recyclerview.setAlpha(0f);
recyclerview.animate()
.translationY(0)
.setDuration(400)
.alpha(1f)
.setInterpolator(new AccelerateDecelerateInterpolator())
.start();
}
এটি আপনার সম্পূর্ণ পুনর্ব্যবহারযোগ্য চিত্রটি প্রাণবন্ত করে তুলবে যাতে এটি পর্দার নীচ থেকে উড়ে যায়।