آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

بازگذاری داینامیک آیتم ها در لیست ویو  [حل شد]

مجتبی یگانه  12 سال پیش  11 سال پیش
+10 0

سلام ، من مشکلی ندارم که چطوری بگیریم چیکار کنم و ... !

مشکل اینه ، کی لود کنم !

Listview.setOnScrollListener(new OnScrollListener() {

 @Override
 public void onScrollStateChanged(AbsListView view, int scrollState) {
  
 }


 @Override
 public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount,
int totalItemCount) { } });

خوب ، با این دستورات ، ما میتونیم چک کنیم ببینیم باید آپدیت بشه یا نه ، اما سوال اینجاست ، میخوام ببینم کل ارتفاع لیست الان چقدره ، موقعیت فعلی کجاست ! ، یا اگه شما الگوریتم خوبی واسه زمان بارگذاری آیتم های جدید دارید ، ممنون میشم بگید

مشکل حل شد و نمونه پروژه در این سوال  قرار گرفت

0 0
اتفاقا منم دنبال همین موضوعم و چون مبتدیم مقداری سرچ کردم.به کتابخانه cwac-endless رسیدم. همه جا بهش لینک دادن و میگن کامله البته چند الگوریتم دیگه هم دیدم که مثل شما ایمپلمنت کرده بودن ولی جالب نبود. هنوز اینو تست نکردم لینک (12 سال پیش)
0 0
این متد دوم که اولین آیتم ، تعداد اونایی که دیده میشن و تعداد کل آیتم ها رو میده ، بیشتر توضیح بده. (12 سال پیش)
0 0
لینک نمونه پروژه خرابه از کجا میتونم دانلود کنم؟ (11 سال پیش)
 برای این سوال 6 پاسخ وجود دارد. مشاهده پاسخ صحیح
پاسخ به سوال 
Spirit  12 سال پیش
0 0

اتفاقا امروز داشتم با برنامم ور میرفتم ، این مبحث افزوده شدن آیتم ها به لیست موقع رسیدن به انتهای لیست اونقدر ترسناک بوده برام که اصلا حتی به مثال هایی که پیدا کردم هم نگاه نمیکردم ، الان الکی این طوری نوشتم و در عین ناباوری موقع رسیدن به انتهای لیست اطلاعات جدید وارد لیست شد :

 listView.setOnScrollListener(new OnScrollListener() {

@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {

}

@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
if (totalItemCount == visibleItemCount + firstVisibleItem) {
btnAddDefaults(view);
adapter.refresh();
}

}
});
پاسخ به سوال 
مجتبی یگانه  12 سال پیش
+1 0

اسپیریت جان شاید عمل کرده باشه ، ولی الگوریتم درستی نیست ! من خودم چند حالت رو تست کردم ! ، شما با یه 2 2 تا 6 تای ساده میتونید بفهمید !

totalItemCount // کل آیتم های لیست
visibleItemCount // کل آیتم هایی که قابل مشاهده هستند
firstVisibleItem // اولین آیتمی که مشاهده میشه
scrollState // الان کاربر اسکرول رو نگه داشته ، داره اسکرول میکنه یا تموم شده یا ... که خیلی مهم نیست واسه ما
AbsListView view // راست و حسینی ، دقیق نمیدونم !

کل آیتم ها == کل آیتم های قابل مشاهده + اولین آیتم قابل مشاهده 
یعنی در واقع برای شرط ممکنه این حالت پیش بیاد !

if(15+60==400){
// load new items !
}

چیزی که من دنبالشم اینه ! ، میگیم برادر من ، کل ارتفاع لیست ویو چقدره ؟ پاسخ -> 4000 
میگیم فدات شم الان اسکرولت کجاست ؟! ، میگه 2000 !
میگیم دمت گرم ، هر وقت رسیدی به 500-4000 یه ندا بده ما آیتم جدید لود کنیم !

حالا ما میتونیم ارتفاع لیست ویو یا گرید ویو رو بگیریم  اما اینکه بقیش :| !

0 0
فقط خواستم شعفی که در وجودم ایجاد شد رو نشون بدم ، ولی باز نگرفتم مشکلت دقیقا کجاست؟ بقیش یعنی چی؟ (12 سال پیش)
0 0
"ولی باز نگرفتم مشکلت دقیقا کجاست؟" : مشکل اینه که چه زمانی آینم جدید لود کنم ، مثلا اگر اسکرول 50 dip مونده بود به آخر لود کنم ، ولی خوب نمیتونم مقدار اسکرول شده فعلی رو بگیرم ! ، اگه منظورت از " بقیش یعنی چی؟" بقیه ی ورودی ها بود ، ویرایش کردم ! (12 سال پیش)
0 0
من lazy listview شنیدم که مثل لیست سوالات این سایت عمل میکنه ... اما اینی که شما دنبالش هستین عجیبه (12 سال پیش)
0 0
همون رو میخوام دیگه ! ، سورسی چیزی داری ؟! (12 سال پیش)
پاسخ به سوال 
حامد  12 سال پیش
+2 0

همونی که همین دوستمون گفت درسته

https://github.com/commonsguy/cwac-endless

لینک stackoverflow را هم بخون ببین همونیه که میخوای :

stackoverflow

stackoverflow2

.................................

اینم ببین  ... البته فکر کنم برای load عکس باشه

https://github.com/dtitov/SpinList

0 0
والله چی بگم !! ، این رو تست کردم ، الان که حسش نیست ، فردا شب دوباره چک میکنم ، اما خدایی لیست ویو رو اعصابمه ! ، تشکر (12 سال پیش)
0 0
خیلی عالی بود ، تشکر mariot جان ، لطفا این کامنت رو پاک کنید و به عنوان پاسخ درج کنید (12 سال پیش)
0 0
خواهش میکنم. توی کل این آموزش ها از AsynsTask استفاده میشه ولی استاد اینو قبول ندارن و روی ترد جاوا اصرار دارن. (12 سال پیش)
پاسخ به سوال 
Hajhosseini  12 سال پیش
+1 0

دوست عزیز جواب سوالت خیلی سادست . . .
به هر آیتم یک ID اختصاص بده و زمانی که اونارو به لیست ویو ADD میکنی تعداد دقیق رو بگیر.البته تعداد میتونه آخرین ID هم باشه ، اگر خواستی بدونی الان کجای لیست هستی و کدوم ID دیده میشه فقط کافیه ID آیتمی که ساخته میشه (نمایش داده میشه) رو بگیری . آیدی رو هم توی Struct Note با توجه به مثال استاد درست کن و تمام . . . 
من هم توی برنامم همین مشکل رو داشتم و اینجوری رفعش کردم.

پاسخ به سوال 
EloMan  12 سال پیش
+1 0

بنا به درخواست دوستان جوابش کردم

این دمو تقریبا نمونه خوبی برای آپدیت لیست ویو با Json هست.

  http://www.uplooder.net/cgi-bin/dl.cgi?key=b68eeb56bfc5dff50797ba2730329122

پاسخ به سوال 
مجتبی یگانه  12 سال پیش
+2 0

 پاسخ صحیح

دوست از همه تون ممنون ، حل شد

هر آیتم توی Struct باید id داشته باشه ، وقتی لیست داره به آخر میرسه  ، قطعا آخرین آیتم لود میشه دیگه ! بنابراین ما تو آداپتور مون میگیم :

public void fill(final ArrayAdapter adapter, final StructImages item,final int position){

if (item.positi GridArray.get(GridArray.size() - 1).position && !G.isLoadingNewItems) {
// Load More Items !
}
// Fill Item !
}

من با متغییری به نام isLoadingNewItems چک می کنم اگه یه بار درخواست فرستاده بودم ، دوباره نفرستم ، وقتی کار لود کردن تموم شد ، isLoadingNewItems رو دوباره false میکنیم تا دفعه ی بعد هم که به آخر رسید شرط کار کنه !

0 0
سورس کدتون مشکلی نداره و خیلی هم تمیزه :))) (12 سال پیش)
0 0
:))) ، تقصیر من نیست ! ، درج سورس کد جدیدا یکم اذیت میکنه ! (12 سال پیش)
0 0
نظر من رو ویرایش میکنی به نفع خودت :))) (قدرت دیکتاتوری میاره خخخخ) (12 سال پیش)
0 0
کِی ؟! کجا ؟! کی ؟! مدرک داری ؟! :)))))) (12 سال پیش)
0 0
اقا این کد اصلا درست , اول چطوری میگی چقدر لود کنه و وقتی اسکرول به اخر رسید چقدر دیگه (12 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .