رفتن به مطلب

کتابخانه PersianRecyclerView ***(نسخه جدید)***


ارسال‌های توصیه شده

سلام

فایل آموزش مفاهیم و ساختار ریسایکلر ویو و متدهای اصلی دانلود نمیشه لطفا بررسی کنید. ممنون

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • پاسخ 612
  • ایجاد شده
  • آخرین پاسخ

بیشترین ارسال‌ها در این موضوع

ارسال‌های محبوب

***************نسخه 4.6 اضافه شد************** ویژگی اضافه شده تو این نسخه ریپل افکت هست که دوستان درخواست داده بودند.  سورس و کتابخونه رو میتونید از پنل دریافت کنید. پیشنمایش.  

سلام خدمت آقای شاهپیری عزیز  واقعا دست مریزاد.ممنون، خیلی کار باهاش راحت وساده شده وپیچیدگی سابق رو نداره . اما شاید یک چیزی که کاربران خصوصا کاربران مبتدی براشون سخت باشه کار با کدهای Xml و

ممنون از کتابخانه خوبتون

تصاویر ارسال شده

در 8 ساعت قبل، mohsen m گفته است :

سلام

فایل آموزش مفاهیم و ساختار ریسایکلر ویو و متدهای اصلی دانلود نمیشه لطفا بررسی کنید. ممنون

لینک اصلاح شد

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 23 ساعت قبل، محمدرضا شاهپیری گفته است :

برای مشکل دوم میتونید موقه اضافه کردن دیتای جدید ریسایکلر رو به اسکرول دلخواه ببرید. با دستور زیر


pr.smoothscrollToPosition(position)

ممنون

مگر ما میدونیم با سرعتی که اسکرول کرده تا کجا اسکرول باید ادامه پیدا کنه که پس از به انتها رسیدن و پس از بارگزاری دیتا این حالت رو ایجاد کنیم !

مگر اینکه یک مقدار ثابت رو همیشه به اسکرول اضافه کنیم که طبیعی از آب در نمیاد و کلا مثل دیوار نمیشه... چیزی شبیه به اسنپ فود میشه که بسیار ضایع است...

اومدم در رویداد onBindViewHolder نوشتم که اگر به پوزیشن مثلا 10 آیتم قبلا از انتها رسیدی اطلاعات جدید رو بارگزاری و اضافه کن...

اما ارور گرفت که در زمان onBind شدن امکان استفاده از تابع notifyItemRangeInserted وجود ندارد.

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 15 ساعت قبل، ForI گفته است :

توی ساب اسکرول که میدونید کدومه؟ یه شرط بزارید اگر پوزیشن اسکرول = مثلا 95 بود بیا درخواست بده به سرور !

ببینید ،

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 15 ساعت قبل، ForI گفته است :

توی ساب اسکرول که میدونید کدومه؟ یه شرط بزارید اگر پوزیشن اسکرول = مثلا 95 بود بیا درخواست بده به سرور !

ببینید ، شاید شما مو رو میبینید و بنده پیچش مو رو...

در سوال قبلی نیز (که جناب شاهپیری زحمت اضافه کردن آیتم getSpanSize  رو کشیدن) گفتید راحته اما دیدید که نیاز به تغییر در کتابخانه و انتشار نسخه جدید بود.

این مورد رو هم ساده نبینید چون پیاده سازیش به این سادگیا نیست.

شک نکنید اگر سوالی رو مطرح میکنم کمی پیچیده است و تست هاش انجام شده و دیدم مثل کلیپی که ارسال کردم نمیشه و یا بدلیل محدودیت های کتابخانه با ارور مواجه میشه و سپس سوال رو مطرح کردم.

با این حال لطفا شما یه تست بزنید و مورد ساده ای که گفتین رو اضافه کنین ببینید شبیه به کلیپ ارسالی میشه و ارور هم نمیده ؟

بنده قبلا هم پرسیدم که چطور موقعیت اسکرول رو بدست بیارم اما پاسخی دریافت نشد و در ازاش مشکل رو بطور کلی برطرف کردن جناب شاهپیری...

و احتمالا احساس نـمیکنید که پارامتر dy موقعیت اسکرول رو برمیکردونه... چون اینطور نیست.

طبق تست متوجه شدم dy تفاوت میان موقعیت فعلیش و قبلیش رو بر میگردونه...

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 26 دقیقه قبل، ForI گفته است :

ببخشید یکم رک حرف زدم ولی نیاز به گفتن بود چون هی پشت گوش انداختیم تا شما مراعات کنید که نکردید!

شما درست میفرمایید.

اما ساده اندیشی است اگر احساس کردید سوالات بنده از استاد شاهپیری جنبه کل کل داشته !!

و متاسفم که شما مشکلات پیچیده در استفاده از این کتابخانه رو اسپم میبینید...(مشکلات پیچیده توضحیش هم پیچیده است.)

شاید شما نیازت با ایجاد یک لیست تک ستونی برطرف شده و اپلیکیشن ساده ای داشتید... اما نیاز بنده بالاتر از این موارد است... و در نهایت نیاز به تغییر در اصل کتابخانه بود و استاد زحمتش رو کشیدن.

با این حال چشم ، زینپس مشکلاتم رو در تاپیکی جداگانه مطرح میکنم و دوستانی که قصد استفاده حرفه ای از کتابخانه رو دارن باید بگردن و تاپیک ها رو پیدا کنن.

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

در انتها از استاد یه سوال دارم ، استاد آیا اون تغییر سایز آیتم اول در حالت گرید ویو بدون تغییر کتابخانه ممکن بود ؟ که ایشان ادعا دارن بنده انتظار دارم کد بهم تحویل بدید !

شما خودتون در پست های اول دو تا مشکل ساده داشتید شروع کرده بودید به اهانت و بنده با خواندنشون عرق شرم به پیشانیم نشست. حالا خواندن پست های کاربردی بنده باعث ناراحتیتون شد ! :53:

از همه دوستان مخصوصا استاد شاهپیری عذرخواهی میکنم بابت ارسال پست های زیادم در مدت زمان کم.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

از دوستان خواهش میکنم که بحثها رو تو محیط دیگه ای انجام بدن. حجم تاپیک همینجوری هم بالا هست و شاید باید بشینیم و تاپیکهای اضافی رو حذف کنم. هردوتا عزیز حرفاتون درست هست و خیلی هم خوبه که بدون تحقیر و توهین مسائل رو رک بیان میکنید. ولی نکته مهمی که درمورد اقای  @ ForI هست اینه که خودشون مسائل و مشکلاتشون رو با آزمون و خطا و تلاش بی وقفه حل کردند روشی که من خودم باهاش رشد کردم و الانم خداروشکر به سطح متوسطی رسیدم که ازش راضی ام. دوست دیگه مون حالا بنا به دلایل خودشون مشکلاتشونو با سوال پرسیدن حل میکنند و هر دوروش قابل احترامند و لی خودم به شخصه روش اولو بهتر و اصولی تر میدونم.

به هر حال  وظیفه اصلی ما رفع مشکلات کتابخونه هست چیزی که رسالت پشتیبانی هست. و موارد مربوط به اضافه کردن ویژگیهای جدید و یا تغییر کتابخونه بنابر نیاز کاربران تو اولویتمون نیست و صرفا اگر وقتگیر نباشه و یا بودنش چیز واجبی باشه یا درنهایت درخواست زیاد باشه.

لطفا دیگه بحث رو ادامه ندین و توی فضاهای دیگه گفتگو کنید.

موفق باشید.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در در 1397/07/25, 19:28:08، محمدرضا شاهپیری گفته است :

12- ویوپیجر

سلام استاد

بنده طبق آموزش یک گالری ساختم.

http://s9.picofile.com/file/8365525584/gallery.mp4.html

با اسکرول بطور خودکار روی یک آیتم نمی ایستاد.

طبق تجربه GravitySnap  خیلی روان کار میکنه اما در حالت گالری افقی GravitySnap به درستی عمل نمیکنه. GravityPagerSnap هم ارور میداد.

ناچارا از LinearSnap استفاده کردم که روان نیست و هر چه اسکرول میکنم تکی تکی جابجا میشه.

1. چطور از GravityPagerSnap یا GravitySnap   استفاده کنم تا اسکرول روان کار کنه و روی آیتم مرکز هم بایسته ؟

2.مورد مهمتر ، چطور تشخیص بدم روی آیتم وسط کلیک شده ؟ (در یکی از کتابخانه های مشابه متد GetVisibleItemPosition(True,True) رو برای تشخیص گزینه وسط در حالت گالری طراحی کرده و در رویداد کلیک آیتم ، میشه پوزیشن رو با موقعیت آیتم وسط مقایسه کرد و .....)

متشکرم

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

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

مشکلی دارم اگه کمکم کنید بسیار ممنون میشم.

یه لیست از نوع  turnlayout ساختم که توش چند تا عکس هست. دو تا دکمه ی چپ و راست گذاشتم که میخوام مثلا وقتی روی دکمه چپ کلیک شد لیست یه دونه به سمت چپ اسکرول بشه. من این کد رو نوشتم اما تا انتهای لیست نمیره.یعنی تا یک آیتم ماقبل آیتم آخر اسکرول میخوره.و آیتم آخر رو اسکرول نمیکنه. کد هم اینه :

Pr.smoothscrollToPosition(Pr.SCROLLBAR_POSITION_RIGHT+1)

با تشکر

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 12 ساعت قبل، alirezafc گفته است :

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

مشکلی دارم اگه کمکم کنید بسیار ممنون میشم.

یه لیست از نوع  turnlayout ساختم که توش چند تا عکس هست. دو تا دکمه ی چپ و راست گذاشتم که میخوام مثلا وقتی روی دکمه چپ کلیک شد لیست یه دونه به سمت چپ اسکرول بشه. من این کد رو نوشتم اما تا انتهای لیست نمیره.یعنی تا یک آیتم ماقبل آیتم آخر اسکرول میخوره.و آیتم آخر رو اسکرول نمیکنه. کد هم اینه :


Pr.smoothscrollToPosition(Pr.SCROLLBAR_POSITION_RIGHT+1)

با تشکر

 

سلام. سورس رو خصوصی ارسال کنید ببینم دوست عزیز.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در ۱ ساعت قبل، محمدرضا شاهپیری گفته است :

سلام. سورس رو خصوصی ارسال کنید ببینم دوست عزیز.

سلام. ممنون از پاسختون.

اما متاسفانه من هنوز به حد نصاب برای پیام خصوصی نرسیدم. میشه لطف کنید ایمیلتون رو بدید تا براتون بفرستم. یا همینجا بذارم.

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 49 دقیقه قبل، alirezafc گفته است :

سلام. ممنون از پاسختون.

اما متاسفانه من هنوز به حد نصاب برای پیام خصوصی نرسیدم. میشه لطف کنید ایمیلتون رو بدید تا براتون بفرستم. یا همینجا بذارم.

 

موردی نداره. همینجا پیوست کنید عزیز

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 3 ساعت قبل، محمدرضا شاهپیری گفته است :

موردی نداره. همینجا پیوست کنید عزیز

ممنون

کد ایجاد لیست:

Sub Activity_Create(FirstTime As Boolean)
	'Do not forget to load the layout file created with the visual designer. For example:
	Activity.LoadLayout("FoodMenu")
	Private Pr As PersianRecyclerLayout
	Pr.Builder("pr").NormalRecycler.BALayout.TurnLayoutManager.RecyclerView.Build
			Pr.PersianTurnLayout.withGravity(Pr.GRAVITY_START).withOrientation(Pr.Oriantation_Horizontal).withPeekDistance(200).withRadius(1000).withRotate
	Activity.AddView(Pr,10%x,0,80%x,40%y)
	Pr.ShowRecycler
End Sub
Sub pr_getItemCount As Int
	Return 5
End Sub


Sub pr_onCreateViewHolder(layoutitem As Object,viewtype As Int) As Object
	Dim pnl As Panel=layoutitem
	pnl.Width=Pr.Width*0.35
	pnl.Height=Pr.Height
	Dim Img As ImageView
	Img.Initialize("")
	pnl.AddView(Img,pnl.Width*0.2,pnl.Width*0.1,pnl.Width*0.6,pnl.Width*0.6)
	Dim lblname As Label
	lblname.Initialize("")
	pnl.AddView(lblname,0,pnl.Width*0.71,pnl.Width,pnl.Height*0.15)
	Return Null
End Sub


Sub pr_onBindViewHolder(layoutitem As Object,position As Int,viewtype As Int)
	Dim pnl As Panel=layoutitem
	Dim Img As ImageView=pnl.GetView(0)
	Img.Color=Colors.Black
	Img.Bitmap=LoadBitmap(File.DirAssets,"Pizza.png")
	Img.Gravity=Gravity.FILL
	Dim lblname As Label=pnl.GetView(1)
	lblname.Text="پیتزا"
	lblname.TextSize=auto.ReturnScaledSize(20)
	lblname.Gravity=Bit.Or(Gravity.CENTER,Gravity.CENTER_HORIZONTAL)
	lblname.TextColor=Colors.White
End Sub

حالا میخوام دو تا دکمه چپ و راست داشته باشم. در دو طرف لیست. وقتی روی دکمه چپ کلیک کردیم ، توی لیست یه محصول به سمت چپ اسکرول بخوره. و اگه روی راست کلیک کردیم یه محصول به سمت راست اسکرول بخوره.یعنی اسکرولِ محصولات رو بسپارم دستِ این دو تا دکمه. این کد رو برای کلیدِ اسکرولِ سمت راست نوشتم اما تا آخر اسکرول نمیخوره.یعنی یکی مونده به آیتمِ آخری دیگه اسکرول حرکت نمیکنه و عنصر آخر رو نشون نمیده:

Sub Globals
	Dim ScrollAmount As int=0
End Sub
Sub ScrollRight_Click
	ScrollAmount = ScrollAmount + 1
	Pr.smoothscrollToPosition(ScrollAmount)
End Sub

می خواستم ببینم راهی هست اینو پیاده کنم؟

خیلی ببخشید یه سوال دیگه هم داشتم. میخواستم ببینم چطور میتونیم وقتی رویِ یکی از عناصر لیست کلیک می کنیم، به حالت انتخاب شده دربیاد. مثلا رنگ بک گراندش تغییر کنه.

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

باتشکر فراوان

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در در 20 تیر 1398 در 18:20، alirezafc گفته است :

 

می خواستم ببینم راهی هست اینو پیاده کنم؟

خیلی ببخشید یه سوال دیگه هم داشتم. میخواستم ببینم چطور میتونیم وقتی رویِ یکی از عناصر لیست کلیک می کنیم، به حالت انتخاب شده دربیاد. مثلا رنگ بک گراندش تغییر کنه.

 

برای سوال اولتون: کلیکهاتون رو درست انتخاب نکردین عزیز. به صورت زیر دکمه های چپ و راست رو مدیریت کنید.

Sub right_Click
	If ScrollAmount>=lis.Size-1 Then     ' پوزیشن نباید از تعداد آیتمها بیشتر باشه
		ScrollAmount=0
		Pr.scrollToPosition(0)
		Return
	End If
	Pr.smoothscrollToPosition(ScrollAmount +1)
	ScrollAmount =ScrollAmount +1	
	
End Sub
Sub left_Click
	If ScrollAmount<=0 Then   ' پوزیشن نباید از 0 کمتر بشه
		Return
	End If
	Pr.smoothscrollToPosition(ScrollAmount -1)
	ScrollAmount =ScrollAmount -1
End Sub

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

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 46 دقیقه قبل، محمدرضا شاهپیری گفته است :

برای سوال اولتون: کلیکهاتون رو درست انتخاب نکردین عزیز. به صورت زیر دکمه های چپ و راست رو مدیریت کنید.


Sub right_Click
	If ScrollAmount>=lis.Size-1 Then     ' پوزیشن نباید از تعداد آیتمها بیشتر باشه
		ScrollAmount=0
		Pr.scrollToPosition(0)
		Return
	End If
	Pr.smoothscrollToPosition(ScrollAmount +1)
	ScrollAmount =ScrollAmount +1	
	
End Sub
Sub left_Click
	If ScrollAmount<=0 Then   ' پوزیشن نباید از 0 کمتر بشه
		Return
	End If
	Pr.smoothscrollToPosition(ScrollAmount -1)
	ScrollAmount =ScrollAmount -1
End Sub

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

بینهایت ممنونم. فقط ببخشید من برای سوال دوم ، در قسمت کلیک اون آیتمی که روش کلیک شده ، رنگ پس زمینشو عوض می کنم. اما می خوام بار بعد اگه روی یه آیتم دیگه کلیک کردم، رنگ آیتمِ کلیک شده ی قبلی به حالت پیش فرض برگرده. یعنی در هر لحضه تنها اون آیتمی که انتخاب شده، رنگش عوض بشه و به حالت انتخاب دربیاد. این کد خودمه:

Sub pr_OnItemClick(ItemTag As Object,viewclicked As Object,position As Int)
	
	Dim pnl As Panel=viewclicked 'پنلِ مربوط عنصر انتخاب شده
	pnl.Color=Colors.Blue 'تغییر رنگ
	
End Sub

اما همانطور که میبینید رنگ پنل به صورت دائمی تغییر میکنه.

ببخشید که خیلی سوال می پرسم.

باتشکر فراوان

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در در 23 تیر 1398 در 15:08، alirezafc گفته است :

بینهایت ممنونم. فقط ببخشید من برای سوال دوم ، در قسمت کلیک اون آیتمی که روش کلیک شده ، رنگ پس زمینشو عوض می کنم. اما می خوام بار بعد اگه روی یه آیتم دیگه کلیک کردم، رنگ آیتمِ کلیک شده ی قبلی به حالت پیش فرض برگرده. یعنی در هر لحضه تنها اون آیتمی که انتخاب شده، رنگش عوض بشه و به حالت انتخاب دربیاد. این کد خودمه:


Sub pr_OnItemClick(ItemTag As Object,viewclicked As Object,position As Int)
	
	Dim pnl As Panel=viewclicked 'پنلِ مربوط عنصر انتخاب شده
	pnl.Color=Colors.Blue 'تغییر رنگ
	
End Sub

اما همانطور که میبینید رنگ پنل به صورت دائمی تغییر میکنه.

ببخشید که خیلی سوال می پرسم.

باتشکر فراوان

کار راحتیه عزیز. شما کافیه یه مدل داشته باشید برای آداپترتون که علاوه بر فیلدهای مورد نیاز هر آیتم یه فیلد به نام color هم داشته باشه. یه متغیر از نوع اینتجر به نام curentitem تعریف کنید و اونو توی OnItemClick مساوی پوزیشن قرار بدین. اینجوری همیشه آیتم قبلی و آیتمی که فعلا انتخاب شده رو دارین. بعد از کلیک متغیر color مربوط به پوزیشن قبل رو به حالت دیفالت و متغیر color مربوط به پوزیشن جدید که همون آیتم کلیک شده هست رو به رنگ جدید مقدار دهی کنید و در نهایت هم دستور notifyitemchanged رو برای هردو پوزیشن صدا بزنید. آموزش مفهومی از پست اول تاپیک رو ببینید

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام استاد 

از این دستور برای ساخت اسلاید استفاده کردم ولی فقط روی 2 تا عکس اول و دوم میره بر میگرده و به عکس های 3 و 4 نمیره   

 slider1.Builder("slider1").AutoPlayRecycler(2500,slider1.AutoPlay_RIGHT).BALayout.ViewPagerLayoutManager.RecyclerView.Build
    slider1.PersianViewPagerLayoutManager.ScaleLayoutManager.withMinScale(1)
    panelrecycler.AddView(slider1,0,0%y,100%x,50.37%x)    
    Activity.AddView(panelrecycler,0,9%y,100%x,50.37%x)
    slider1.ShowRecycler
    slider1.notifyDataSetChanged

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 12 دقیقه قبل، Saeedmahdavi گفته است :

 

حتما تغییرات رو در نظر داشته باشید. بعضی از متدها عوض شده. به صورت زیر تغییر بدید اینشیالایز رو

mainrecycler.Builder("pr").NormalRecycler.BALayout.ListView.RecyclerView.withDefaultDividier(mainrecycler.Oriantation_Vertical).Build

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 21 دقیقه قبل، محمدرضا شاهپیری گفته است :

حتما تغییرات رو در نظر داشته باشید. بعضی از متدها عوض شده. به صورت زیر تغییر بدید اینشیالایز رو


mainrecycler.Builder("pr").NormalRecycler.BALayout.ListView.RecyclerView.withDefaultDividier(mainrecycler.Oriantation_Vertical).Build

  

ما بخوایم توی این صفحه اول ک شبیه بازار هست وقتی روی هر آیتم کلیک میشه یه اکتیویتی باز بشه چیکار کنیم و آموزش تغییر ایمیج اسلایدر ممنون

لینک ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

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

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.

×
  • اضافه کردن...