رفتن به مطلب

کتابخانه JSListView


امین مهدی نژاد

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

لیست ویوی قدرتمند-سریع و حرفه ای که می تواند در اغلب موارد جایگزین نمونه های فروشی موجود در انجمن های ایرانی باشد.

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

مثال:

ابتدا متغیرها را تعریف و لیست داده های لازم برای نمایش را تهیه کرده و به لیست ویو اختصاص میدهیم. در این مثال داده ها از جیسون گرفته شده اند

Sub Globals
	Dim LV As JSListView2	
	Dim Adapter As JSListAdapter
End Sub

Sub Activity_Create(FirstTime As Boolean)
	'Load JSON file - will just use this to load up our list
	'This json file contains list of records
	Dim js As JSONParser
	js.Initialize(File.ReadString(File.DirAssets, "MOCK_DATA.json"))
	
	'load up data (list)
	Dim data As List =  js.NextArray
	
	'Initialize JSListAdapter and set data (list)
	Adapter.Initialize("Adapter", data)
	
	'Initialize JSListView2 and set the adapter
	LV.Initialize("LV")
	Activity.AddView(LV, 0dip, 0dip, 100%x, 100%y)
	LV.Adapter = Adapter
	
	' optional
	LV.CacheColorHint = 0
	LV.DividerHeight = 5dip
	LV.FastScrollEnabled = True
End Sub

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

در ضمن برای ویوها هم Id تعیین کرده تا دسترسی به آنها ساده تر بشود.

متغیری از نوع JSViewHolder برای تعین ویوی هر آیتم و کنترل آن وجود دارد

Sub Adapter_onGetView(position As Int, viewHolder As JSViewHolder)
	'check if container was set
	If viewHolder.Container = Null Then
		'load new layout
		Dim p As Panel
		p.Initialize("")
		p.LoadLayout("Layout1")
		
		'set view id
		viewHolder.Initialize(p, 100dip, 100%x)
		viewHolder.setViewId(Label1, 10)
		viewHolder.setViewId(Label2, 20)
		viewHolder.setViewId(Label3, 30)
		viewHolder.setViewId(ImageView1, 40)
		
		'customize view (width/height)
		Label1.TextColor = Colors.White
		Dim tf As Typeface = Typeface.LoadFromAssets("josefinsans-bold.ttf")
		Label3.Typeface = tf.DEFAULT_BOLD

		Label1.Width = -2 '100%x - Label1.Left - 10dip
		Label2.Width = 100dip
		Label2.SetLayout(100%x - Label2.Width - 10dip, 5dip, 100dip, -2)
		Label3.Width = 100%x - Label1.Left - 10dip
		tf = Typeface.LoadFromAssets("josefinsans-semibolditalic.ttf")
		Label3.Typeface = tf		
		Label2.Gravity = Gravity.CENTER
	End If
End Sub

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

Sub Adapter_onBindView(position As Int, viewHolder As JSViewHolder)
	'findview by id
	Label1 = viewHolder.findViewById(10)
	Label2 = viewHolder.findViewById(20)
	Label3 = viewHolder.findViewById(30)
	ImageView1 = viewHolder.findViewById(40)
	
	'get data to map
	Dim m As Map = Adapter.DataSource.Get(position)
	
	'display map values
	Label1.Text = (position+1) & ". " & m.Get("app_name")
	Label2.Text = m.GetDefault("app_version", "")
	Label3.Text = m.GetDefault("catch_phrase", "")
End Sub

توضیحات خیلی کلی بود.البته مثالی هم در زیر برای دانلود وجود دارد.که می تواند به شما درباره نحوه افزودن آیتم جدید و یا رویداد های ویوهای هر آیتم راهنمایی خوبی باشد.

دانلود:

JSDataAdapter V0.3(AnswerCenter.ir)

JSListView V0.9(AnswerCenter.ir)

JSListViewEX(AnswerCenter.ir)

منبع:

GitHub - salvadorjhai/B4A-JSListView: Listview wrapper for B4A (Basic4Android)

GitHub - salvadorjhai/B4A-JSDataAdapter: Adapter Wrapper for B4A (Basic4Android)

«موفق باشید.»

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

سلام وتشکراز  آقای مهدی نژاد عزیز

 

ولی توی سمپلی که گذاشته اید ، تصاویر رو نمایش نمیده وصفحه تصاویر سفیده

این خط رو هم در بخش log نمایش میده !

Panel size is unknown. Layout may not be loaded correctly.

 

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

در در 1396/12/20, 14:52:47، نورنما گفته است :

سلام وتشکراز  آقای مهدی نژاد عزیز

واقعا سرعت لود و اسکرول لیست عالیه 

ولی توی سمپلی که گذاشته اید ، تصاویر رو نمایش نمیده وصفحه تصاویر سفیده

این خط رو هم در بخش log نمایش میده !


Panel size is unknown. Layout may not be loaded correctly.

 

آره ظاهرش به راحتی قابل تنظیمه

در لینک گیتهاب پروزه سه تا مثال دیگه قرار داره

که می تونین استفاده کنین

«موفق باشید.»

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

بایگانی شده

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

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

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