رفتن به مطلب
برای استفاده از انجمن و عضـویت کلیک کنید.

AnswerCenter

مرکز پاسخگویی به سوالات برنامه نویسی

درخواست سفارش پروژه

اطلاعیه

کاربر گرامی

به انجمن برنامه نویسی AnswerCenter.ir خوش آمدید

 برای استفاده از تمامی امکانات سایت لطفا در انجمن عضو شوید


محمدرضا شاهپیری

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

پست های پیشنهاد شده

محمدرضا شاهپیری    3,828

مدیر کل سایت

در 10 دقیقه قبل، reza1360 گفته است :

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

لینک دانلود مگه جایی میاد عزیز؟ شما اگه خرید کردین باید برید تو قسمت مدیریت خرید و از اونجا محصولات خریداری شده رو دانلود کنید

  • پسندیدن 1

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


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

کاربر عادی

سلام

آیا این کتابخونه در اندروید 4 و یا اندروید 3 هم قابل استفاده است یا فقط برای 5 به بالا کاربرد داره؟ با تشکر

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
محمدرضا شاهپیری    3,828

مدیر کل سایت

در 18 ساعت قبل، mykimia گفته است :

سلام

آیا این کتابخونه در اندروید 4 و یا اندروید 3 هم قابل استفاده است یا فقط برای 5 به بالا کاربرد داره؟ با تشکر

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

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


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

کاربر فعال

سلام خدمت آقای شاهپیری عزیز 

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

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

که اگر محضرتان جسارت نباشه ، با اجازه شما یک  سایتی را برای ساخت ویوهای بسیار زیبا با خروجی فایل Xml خدمت دوستان انجمن برای بهره گیری ازآن در ریسایکلر ویو معرفی کنم :

 

آدرس سایت :

Android Button Maker

 

 این سایت دارای قابلیت های زیر می باشد:

تعیین اندازه ویو ها

تعیین پس زمینه رنگ ویو ها حتی  سه رنگی با تعیین محل نور پردازی وتنظیم مقدار محیطی رنگ 

تعیین رنگ متن داخل ویو 

سایه گذاری برای متن داخل ویو وتعیین محل سایه و تعیین درصد پراکندگی وتراکم سایه 

تعیین محل قرارگیری متن درداخل ویو 

تعیین مقدار خمیدگی زاویه های اطراف ویو ها 

قرار دادن کار حاشیه ویو وتنظیم ضخامت آن و تعیین رنگ آن 

 

* نکته: این سایت دو بخش مخصوص خروجی کد Xml دارد که دقت شود :کدهای داخل بخش Button را در داخل فایل Xml دلخواه  در پوشه layout قرار بدهید 

و کدهای خروجی موجود در بخش buttonshape را در داخل فایل xml دلخواه (مثلا :litem.xml) در پوشه drawable که در پوشه res باید خودتان بسازیدش، قرار بدین .البته اسم این فایل xml رو هرچی بگذارید

باید بیایید وداخل فایل (litem.xml) در سطری که نوشته (android:background="@drawable/buttonshape")  بجای buttonshape ،اسم اون فایل رو  جایگذاری نمایید .

به همین راحتی! 

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

 

Untitled.png.f58fa42bd181fa78d0b2dc9bb3d6f4a3.png

 

کدهای بیسیک فور برای این مثال :

Sub pr_onBindViewHolder(layoutitem As Object,position As Int,viewtype As Int)
	Dim prutil As PRViewUtils
	prutil.init(layoutitem)
	prutil.setTextColorForTextview("txt",Colors.Green)
	prutil.setTextForTextview("txt","متن  :    "&position&"  ")
	
	
	Dim button_shape_left_buttom As PRViewUtils
	button_shape_left_buttom.init(layoutitem)
	button_shape_left_buttom.setTextColorForTextview("button_shape_left_buttom",Colors.Red)
	button_shape_left_buttom.setTextForTextview("button_shape_left_buttom",  "چ  پایین"&position)
	
	Dim button_shape_left_top As PRViewUtils
	button_shape_left_top.init(layoutitem)
	button_shape_left_top.setTextColorForTextview("button_shape_left_top",Colors.Red)
	button_shape_left_top.setTextForTextview("button_shape_left_top",        "چ   بالا"&position)
	
	Dim button_shape_right_buttom As PRViewUtils
	button_shape_right_buttom.init(layoutitem)
	button_shape_right_buttom.setTextColorForTextview("button_shape_right_buttom",Colors.Red)
	button_shape_right_buttom.setTextForTextview("button_shape_right_buttom","ر پایین"&position)
	    
	Dim button_shape_right_top As PRViewUtils
	button_shape_right_top.init(layoutitem)
	button_shape_right_top.setTextColorForTextview("button_shape_right_top",Colors.Red)
	button_shape_right_top.setTextForTextview("button_shape_right_top",      "ر  بالا"&position)
	
End Sub

 

=> ( لینک پوشه res مخصوص این نمونه )

 

آدرس سایت های مشابه برای این منظور:

Android Drawble Generator

Online XML Shapes Generator for Android

Android Button Maker

 

سایت ویرایشگر آنلاین کد های ویو در Xml   به همراه نمایش خروجی کدها:

Android Visualizer

  • پسندیدن 3

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


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

کاربر عادی

سلام

آیتم تگ را کجا باید بدیم که در OnItemClick بتونیم بگیریمش؟

 

Sub pr_OnItemClick(ItemTag As Object,position As Int)
    
 ItemTag رو اینجا نمیاره. کجا باید مقدار بدم که اینجا قابل دسترسی بشه؟
    
End Sub

 

و اینکه آیا به هر یک از آبجکت ها میشه در onBindViewHolder تگ بدیم که در OnItemClick قابل دسترسی باشه و چجوری؟

تشکر

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
محمدرضا شاهپیری    3,828

مدیر کل سایت

در 9 ساعت قبل، mykimia گفته است :

 

برای لیوت xml باید مقدار زیر رو به ویو اضافه کنید توی xml  

 android:tag="mytag"

,و برای لیوت بیسیک هم که مشخصه مثلا برای button به صورت  زیر هست دیگه

button1.Tag="mytag"

 

در 9 ساعت قبل، mykimia گفته است :

و اینکه آیا به هر یک از آبجکت ها میشه در onBindViewHolder تگ بدیم که در OnItemClick قابل دسترسی باشه و چجوری؟

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

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


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

کاربر عادی

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

برای لیوت xml باید مقدار زیر رو به ویو اضافه کنید توی xml  


 android:tag="mytag"

,و برای لیوت بیسیک هم که مشخصه مثلا برای button به صورت  زیر هست دیگه


button1.Tag="mytag"

 

مقدار دهی مشخصه عزیز. اینجا مشکلی نیست. اما در گرفتن مقادیر مشکل دارم در متد OnItemClick. 

چطوری تو متد OnItemClick میشه مقادیری که به تگها دادیم رو بگیریم؟

این مورد تو آموزش ها نبود.

تشکر

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


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

کاربر فعال

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

مقدار دهی مشخصه عزیز. اینجا مشکلی نیست. اما در گرفتن مقادیر مشکل دارم در متد OnItemClick. 

چطوری تو متد OnItemClick میشه مقادیری که به تگها دادیم رو بگیریم؟

این مورد تو آموزش ها نبود.

تشکر

خب کدش رو آقای شاهپیری داخل سورس هم گذاشته اند همین کدهای  زیر رو بگذارید ، برای همه آیتمها یکجا وبطور جداگانه موقع کلیک کردن لاگ مختص آیتم ها رو با شماره position نمایش خواهد داد.

 


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

 

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


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

کاربر عادی

در 12 ساعت قبل، نورنما گفته است :

خب کدش رو آقای شاهپیری داخل سورس هم گذاشته اند همین کدهای  زیر رو بگذارید ، برای همه آیتمها یکجا وبطور جداگانه موقع کلیک کردن لاگ مختص آیتم ها رو با شماره position نمایش خواهد داد.

 



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

 

این کد منه:

Sub Activity_Create(FirstTime As Boolean)

PR.Builder("PR").NormalRecycler.BALayout.ListView.RecyclerView.Build
                       
        Activity.AddView(PR, 0, 0, 100%x, 100%y)

end sub

Sub PR_onCreateViewHolder(layoutitem As Object,viewtype As Int) As Object
        
    Dim LIPanel As Panel = layoutitem
    
    ImgItem.Initialize("ImgItem")
    LIPanel.AddView(ImgItem, 0, 0, 100%x, 10%y)
    ImgItem.Bitmap = MyBitmap
    '        
    Return LIPanel
    
End Sub

Sub PR_onBindViewHolder(layoutitem As Object,position As Int,viewtype As Int)
    
    Dim LIPanel As Panel = layoutitem
    LIPanel.Width = 100%x
    LIPanel.Height = 10%y
    '
    ImgItem = LIPanel.GetView(0)
    ImgItem.tag = "test"
    '
    LIPanel.tag = "test2"
    
    
End Sub

Sub PR_OnItemClick(ItemTag As Object,position As Int)
    
    Log(ItemTag & position)

End Sub


آیتم ها به درستی لود میشه اما متد  OnItemClick فقط پوزیشن رو درست برمیگردونه؛  اما ItemTag رو Null میده!! کجای کدم اشتباست؟!

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


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

کاربر عادی

سلام

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

PR.Builder("PR").NormalRecycler.BALayout.ListView.RecyclerView.Build

برای وارد کردن آیتم جدید هم از این کد استفاده کردم:

PR.notifyItemInserted(index)

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

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

تشکر

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
محمدرضا شاهپیری    3,828

مدیر کل سایت

از دستور notifyitemadded استفاده کنید.

یه سورس نوشتم براتون رو آیتما کلیک کنید همونجا اضافه میشه بدون هیچ مشکلی         introrecycler.zip

  • پسندیدن 2

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


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

کاربر عادی

آیا این لست ویو راهی داره که موقع اسکرول شدن، رسیدن اسکرول به اول و آخر لیست رو بتونیم متوجه بشیم؟

PR.Builder("PR").NormalRecycler.BALayout.ListView.RecyclerView.Build

چونکه متد onRecyclerScroll ظاهرا تو این مدل لیست کار نمیکنه!

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
محمدرضا شاهپیری    3,828

مدیر کل سایت

کار میکنه عزیز. باید متد withScrollListener  رو صدا بزنید تا اون متد فعال شه. به صورت زیر.

pr.Builder("pr").NormalRecycler.BALayout.ListView.RecyclerView.withScrollListener.Build

 

  • پسندیدن 1

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


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

کاربر رو به رشد

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

 

یه خواهش دیگه: چطور میتونم خاصیت افکت کلیک شدن روی لیست ویوو را ایجاد کنم؟ با کتابخونه RippleEffect تست کردم موقع کلیک کردن ارور میده و از برنامه خارج میشه.

ممنون

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


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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

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

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

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

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

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

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


×
×
  • جدید...