تابستون داره تموم میشه ها، فرصت‌ها محدودن کلی آفر جذاب در کمپین تابستون🔥👇
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ پژمان آزاد
تعین پارامتر ورودی متد smoothScrollToPosition
پوریا شفیعی حل شده توسط پوریا شفیعی

با سلام

 

اگر بعد از اضافه کردن یه آیتم جدید به لیست Contacts  و اطلاع به RecyclerView در adapter، لیستمون رو sort کنیم پارامتر ورودی متد recyclerView.smoothScrollToPosition(0); در Activity

 رو چطوری میتونیم مشخص کنیم که به position آیتم جدیدالورود سوئیچ کنه؟

سلام خسته نباشید جانم

میشه بدونم لیستتون رو چطور sort کردید؟

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

Pouya Rezaei ۲۴ تیر ۱۳۹۹، ۲۲:۵۲

سلام و احترام 

ما برای حل این مشکل میتونیم بجای عدد 0 بیایم و list - 1 رو در نظر بگیریم (منظور از لیست همون نام متغیر لیست شماست)

اما چرا منهای 1؟ چون لیست یا آرایه از صفر شروع به شمارش میشن مثلا: صفر یک دو سه چهار (درسته که چهار عدد داریم ولی از صفر شروع به شمارششون میکنیم)

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

پس در این مثال میتونین این کد رو جایگزین کنید :

recyclerView.scrollToPosition(adapter.getItemCount()-1);

ارادتمند.

بهترین پاسخ
پوریا شفیعی ۲۶ تیر ۱۳۹۹، ۰۸:۳۹

ممنون پوریا جان

 

درسته که positionها از عدد صفر شروع میشن ولی اگر فرضا ما 20 آیتم داشته باشیم که positionشون میشه از0 تا 19 ولی getItemCount() عدد 20 رو برمیگردونه درست نمیگم؟ و وقتی منهای 1ش میکنیم میره به position 19

فکر نمیکنم برنامه اینطوری درست کار کنه.

 

 از طرفی این به شرطی هست که عملیات sort روی position آیتم جدیدالورود باشه. اگر روی حرف اول کاراکتر fullName عملیات sort رو انجام بدیم ضمن اینکه این وسطا ممکنه حذف و ویرایش هم داشته باشیم.

برنامه از کجا تشخیص بده position این آیتم جدید کجاست؟

پژمان آزاد ۲۶ تیر ۱۳۹۹، ۱۴:۴۲