رفتن به مطلب

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


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

در در 2 تیر 1399 در 20:03، محمدرضا شاهپیری گفته است :

نسخه جدید رو دریافت کنید. برای مورد itemViewType از دستور  (pr.GetItemViewType(position و برای انیمیشن قبل از دستور notify متد pr.disableItemChangeAnimation رو صدا بزنید

سلام وقت بخیر این متد GetItemViewType بنظر کمی باگ داره چون من دارم لاگ میکنم همش 0 لاگ میکنه

کدم اینه برای کلیک

Sub PersianRecyclerLayout_OnItemClick(ItemTag As Object,viewclicked As Object,position As Int)
	Log(PersianRecyclerLayout.GetItemViewType(position))
End sub

بعد فقط 0 لاگ میکنه درصورتی که ساب زیر

Sub PersianRecyclerLayout_getItemViewType(position As Int) As Int
	If position = 0 Then
		Return 0
	Else if position = (lis.Size + 1) Then
		Return 1
	Else
		Return 2
	End If
End Sub

آیتم هارو درست نمایش میده اما متده فک کنم کمی باگ داره

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

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

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

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

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

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

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

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

در 13 ساعت قبل، programingcenter97. گفته است :

سلام وقت بخیر این متد GetItemViewType بنظر کمی باگ داره چون من دارم لاگ میکنم همش 0 لاگ میکنه

کدم اینه برای کلیک


Sub PersianRecyclerLayout_OnItemClick(ItemTag As Object,viewclicked As Object,position As Int)
	Log(PersianRecyclerLayout.GetItemViewType(position))
End sub

بعد فقط 0 لاگ میکنه درصورتی که ساب زیر


Sub PersianRecyclerLayout_getItemViewType(position As Int) As Int
	If position = 0 Then
		Return 0
	Else if position = (lis.Size + 1) Then
		Return 1
	Else
		Return 2
	End If
End Sub

آیتم هارو درست نمایش میده اما متده فک کنم کمی باگ داره

دوست عزیز position مگه مقدار (lis.Size + 1) رو میگیره که اینو نوشتید؟ position  حداکثر مقدارش (lis.Size - 1) هست

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

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

دوست عزیز position مگه مقدار (lis.Size + 1) رو میگیره که اینو نوشتید؟ position  حداکثر مقدارش (lis.Size - 1) هست

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

Sub PersianRecyclerLayout_getItemCount As Int
	Return lis.Size + 2
End Sub

بنظر اون قسمتی که اضافه کردین کمی باگ داره

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

سلام چجوری میتونم یک دکمه که  درون پنل recyclerview ساختم استفاده کنم ؟

در واقع چجوری ساب کلیک اون رو باید ایجاد کنم

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

در 38 دقیقه قبل، bitmap گفته است :

سلام چجوری میتونم یک دکمه که  درون پنل recyclerview ساختم استفاده کنم ؟

در واقع چجوری ساب کلیک اون رو باید ایجاد کنم

متد زیر رو توی اکتیویتی اضافه کنید.

Sub pr_OnItemClick(ItemTag As Object,viewclicked As Object,position As Int)
	Log(ItemTag)
End sub

 

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

  • 4 هفته بعد...

سلام و درود

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

1 - میشه باهاش یک مولتی پنل مانندی طراحی کرد که اطلاعت از دیتابیس آنلاین لود بشه و مثلا 10 تا که ایتم کاربر دید دوباره به این مولتی پنل افزوده بشه و همین روند (خیلی سخت نیست اجراش؟ چون وقت کم دارم)

2- کتابخونه ها برای اندروید ایکس ؟ چون بنده آپدیت نکردم به اندروید ساپورت

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

در 5 ساعت قبل، ali mo گفته است :

سلام و درود

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

1 - میشه باهاش یک مولتی پنل مانندی طراحی کرد که اطلاعت از دیتابیس آنلاین لود بشه و مثلا 10 تا که ایتم کاربر دید دوباره به این مولتی پنل افزوده بشه و همین روند (خیلی سخت نیست اجراش؟ چون وقت کم دارم)

2- کتابخونه ها برای اندروید ایکس ؟ چون بنده آپدیت نکردم به اندروید ساپورت

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

2- کتابخونه برای androidX هست و تمامی پیکجها با androidX به روز شده

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

سلام وقت بخیر 

هنگام اسکرول کردن ریسایکلر ویو چطور میتونم تولبار برنامه را پارالکس کنم  یعنی منظورم اینه که تولبار و حتی اگه بشه استتوس بار حذف بشن و مجدد هنگام اسکرول برعکس ظاهر بشن؟ 

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

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

سلام وقت بخیر 

هنگام اسکرول کردن ریسایکلر ویو چطور میتونم تولبار برنامه را پارالکس کنم  یعنی منظورم اینه که تولبار و حتی اگه بشه استتوس بار حذف بشن و مجدد هنگام اسکرول برعکس ظاهر بشن؟ 

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

 

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

سلام تو کتابخانه ریسایکلر withparalax وجود داره که گویا چون کتابخونش جدا شده دیگه کاربردی نداره 

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

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

سلام تو کتابخانه ریسایکلر withparalax وجود داره که گویا چون کتابخونش جدا شده دیگه کاربردی نداره 

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

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

  • 3 هفته بعد...

سلام

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

Sub Process_Globals
	'These global variables will be declared once when the application starts.
	'These variables can be accessed from all modules.
	Dim sql As SQL
End Sub

Sub Globals
	Dim pr As PersianRecyclerLayout
	Dim su As StringUtils
	Dim cur As Cursor
	Private lblpyamaktext As Label
	Private lbltitr As Label
End Sub

Sub Activity_Create(FirstTime As Boolean)
	Activity.LoadLayout("Layout")
	If(File.Exists(File.DirInternal , "book10v(2.0.2)") = False)Then
		File.Copy(File.DirAssets , "book10v(2.0.2).db" , File.DirInternal , "book10v(2.0.2).db")
	End If
	
	
	
	sql.Initialize(File.DirInternal , "book10v(2.0.2).db" , True)
	
	cur= sql.ExecQuery("SELECT * FROM TblText WHERE IDzFasl = 2 AND IDzGoftar = 1 AND IDzBakhsh = 1")
	
	pr.Builder("pr").NormalRecycler.BALayout.ListView.RecyclerView.Build
	Activity.AddView(pr , 0 , 0 , 100%X , 100%Y)
	pr.ShowRecycler

	
End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub

Sub pr_getItemCount As Int
	Return cur.RowCount
		
End Sub

Sub pr_onCreateViewHolder(layoutitem As Object,viewtype As Int) As Object
	Dim mainpanel As Panel = layoutitem
	mainpanel.LoadLayout("l")
	cur= sql.ExecQuery("SELECT * FROM TblText WHERE IDzFasl = 2 AND IDzGoftar = 1 AND IDzBakhsh = 1")
	Return Null
End Sub

Sub pr_onBindViewHolder(layoutitem As Object,position As Int,viewtype As Int) As Object
	Dim mainpanel As Panel = layoutitem
	mainpanel.Width = 100%X
	mainpanel.Height = 50%Y
	cur.Position = position
	lblpyamaktext.Text = cur.GetString("Text")
	lblpyamaktext.TextColor = Colors.Black
	lblpyamaktext.Height = su.MeasureMultilineTextHeight(lblpyamaktext , lblpyamaktext.Text)
	Log(position)
	Log(cur.GetString("Text"))
	Return mainpanel
End Sub

Sub pr_OnItemClick(ItemTag As Object,viewclicked As Object,position As Int)
	Log(ItemTag)
	
End Sub

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

ممنون میشم راهنمایی کنید:53::53::53::53::53:

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

در 1 ساعت قبل، Mthzf1384 گفته است :

سلام

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

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

ممنون میشم راهنمایی کنید:53::53::53::53::53:

سلام خدمت شما دوست گرامی.

متاسفانه کدنویسیتون خیلی غیر استاندارده. و مشخصا شما مفاهیم ریسایکلر ویو رو مسلط نشدین. شما توی onCreateViewHolder دارین sql.ExecQuery رو صدا میزنین که واقعا فاجعه اس.

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

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

در هم اکنون، محمدرضا شاهپیری گفته است :

سلام خدمت شما دوست گرامی.

متاسفانه کدنویسیتون خیلی غیر استاندارده. و مشخصا شما مفاهیم ریسایکلر ویو رو مسلط نشدین. شما توی onCreateViewHolder دارین sql.ExecQuery رو صدا میزنین که واقعا فاجعه اس.

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

خیلی ممنون

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

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

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

ببخشید من خیلی مبتدیم اگر میشه این قسمت رو برام بیشتر توضیح بدید و اگر میشه مثال هم برام بزنید:53::53::53::53::53::53::53:

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

در 3 ساعت قبل، Mthzf1384 گفته است :

ببخشید من خیلی مبتدیم اگر میشه این قسمت رو برام بیشتر توضیح بدید و اگر میشه مثال هم برام بزنید:53::53::53::53::53::53::53:

آموزشهای لازم داده شده دوست عزیز. آموزش زیر رو حتما ببینید

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

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

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

آموزشهای لازم داده شده دوست عزیز. آموزش زیر رو حتما ببینید

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

خیلی ممنون از پاسخگوییتون:53::53::53::53::53:

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

سلام

من کد هامو عوض کردم ولی همون مشکل قبلی رو دارم

Sub Process_Globals
	Dim sql As SQL
End Sub

Sub Globals
	Type mymodel(Text As String)
	Dim l As List
	Dim pr As PersianRecyclerLayout
	Dim su As StringUtils
	Dim cur As Cursor
	Private lblpyamaktext As Label
	Private lbltitr As Label
End Sub

Sub Activity_Create(FirstTime As Boolean)
	Activity.LoadLayout("Layout")
	If(File.Exists(File.DirInternal , "book10v(2.0.2)") = False)Then
		File.Copy(File.DirAssets , "book10v(2.0.2).db" , File.DirInternal , "book10v(2.0.2).db")
	End If
	
	sql.Initialize(File.DirInternal , "book10v(2.0.2).db" , True)	
	
	l.Initialize	
	gettext
	
	pr.Builder("pr").NormalRecycler.BALayout.ListView.RecyclerView.Build
	Activity.AddView(pr , 0 , 0 , 100%X , 100%Y)
	pr.ShowRecycler
	
End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub

Sub pr_getItemCount As Int
	Return l.Size
		
End Sub

Sub pr_onCreateViewHolder(layoutitem As Object,viewtype As Int) As Object
	Dim mainpanel As Panel = layoutitem
	mainpanel.LoadLayout("l")
	Return Null
End Sub

Sub pr_onBindViewHolder(layoutitem As Object,position As Int,viewtype As Int) As Object
	Dim mainpanel As Panel = layoutitem
	mainpanel.Width = 100%X
	mainpanel.Height = 200dip
	Dim model As mymodel 
	model.Initialize
	model.Text = l.Get(position)
	lblpyamaktext.Text = model.Text
	lblpyamaktext.TextColor = Colors.Black
	lblpyamaktext.Height = su.MeasureMultilineTextHeight(lblpyamaktext , lblpyamaktext.Text)
	Log(position)
	Log(model.Text)
	Return mainpanel
End Sub

Private Sub gettext
	cur= sql.ExecQuery("SELECT * FROM TblText WHERE IDzFasl = 2 AND IDzGoftar = 1 AND IDzBakhsh = 1")
	For i = 0 To cur.RowCount - 1
		cur.Position = i
		l.Add(cur.GetString("Text"))
	Next	

این هم کد هام هستش

  یه چیزی هم که فهمیدم این بود که متن ها رو تا آیتم 6 درست لود می کنه و آیتم 7 رو هم وقتی اسکرول می کنم درست نشون میده اما وقتی که اسکرول می کنم میام رو آیتم 8 به جای اینکه متن آیتم 8 رو عوض کنه میاد متن آیتم 7 رو پاک میکنه و متن آیتم هشت رو داخلش میریزه و آیتم 8 هم انگار اینکه آیتم 1 رو از بالا گرفته باشن آورده باشنش پایین

خیلی ممنون میشم راهنمایی  کنید :53::53::53::53::53: 

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

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

سلام به همه اساتید  و دوستان

خوشبختانه مشکل قبلیم حل شد اما متاسفانه مشکل دیگری به مشکلاتمان اضافه شد

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

من دو تا سوال دارم:

  1. اگر بخوام روی یکی از این دکمه ها کلیک کنم آیا باید از رویداد کلیک دکمه استفاده کنم؟(من اومدم از این طریق رفتم ولی اصلا وقتی روی دکمه کلیک می کنم رویداد کلیک دکمه فراخوانی نمیشه و اصلا کد های این رو نمیخونه)
  2. اگر جوابتون به سوال اولم نه هست پس من چجوری باید کد های مربوط به کلیک روی دکمه رو بنویسم منظورم اینه که کجا؟

با تشکر از همه اساتید و دوستان انسر سنتری:53::53::53::53::53::53:

 

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

در 21 ساعت قبل، Mthzf1384 گفته است :

 

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

Private Sub EventName_OnItemClick(ItemTag As Object,viewclicked As Object,position As Int)
	
End Sub

 

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

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

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

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

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

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

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

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

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

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

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

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