سلام من 2 مشکل دارم:
مشکل اول:
اینکه مثلا یه lable در PersianRecyclerLayout قرار میدم حالا میخوام وقتی روی اون کلیک شد بره توی رویداد خود lable نرود توی رویداد OnItemClick منظور یعنی وقتی روی lable کلیک شد رویداد Label1_Click اجرا بشه sender کار کند .
Sub Activity_Create(FirstTime As Boolean)
pr.Builder("pr").NormalRecycler.BALayout.ListView.RecyclerView.Build
Activity.AddView(pr,PerXToCurrent(0),PerYToCurrent(0),PerXToCurrent(100),PerYToCurrent(80))
pr.ShowRecycler
End Sub
Sub pr_getItemCount As Int
Return 1000
End Sub
Sub pr_onCreateViewHolder(layoutitem As Object,viewtype As Int) As Object
Dim mainpanel As Panel=layoutitem
Dim Label1 As Label
Label1.Initialize("Label1")
Label1.Color=Colors.Red
mainpanel.AddView(Label1,PerXToCurrent(0),PerYToCurrent(0),PerXToCurrent(100),PerYToCurrent(10))
Return Null
End Sub
Sub pr_onBindViewHolder(layoutitem As Object,position As Int,viewtype As Int)
Dim mainpanel As Panel=layoutitem
mainpanel.Width=PerXToCurrent(100)
mainpanel.Height=PerYToCurrent(11)
Dim Label1 As Label=mainpanel.GetView(0)
Label1.Text="item" & position
Label1.Tag="b"
End Sub
Sub Label1_Click
Dim Label1 As Label=Sender
Label1.Color=Colors.Green
ToastMessageShow(Label1.Text,False)
ToastMessageShow(Label1.Tag,False)
End Sub
Sub pr_OnItemClick(ItemTag As Object,position As Int)
End Sub
توجه کد به صورت زیر نباشد
Sub pr_onBindViewHolder(layoutitem As Object,position As Int,viewtype As Int)
Dim mainpanel As Panel=layoutitem
mainpanel.Width=PerXToCurrent(100)
mainpanel.Height=PerYToCurrent(11)
Dim Label1 As Label=mainpanel.GetView(0)
Label1.Text="item" & position
'''''''' توجه این روش نمی خوام باشه چون من
''''''' tag
''' رو یه مقدار خاصی میخوام بدم
Label1.Tag=Label1
End Sub
--------------------------------------
مشکل دوم :
فرض کنید ما یه 100 ایتم داریم و داخل هر ایتم یه lable هست حالا اگه کاربر روی هر lable کلیک کرد رنگش سبز بشه
مشکل اینکه مثلا کاربر روی lable ایتم 0 کلیک کرد با پایین اوردن اسکرول lable ایتم های شماره 5 و 11 و 17 و .. به همین شکل هم رنگش سبز میشه در صورتی که کاربر فقط روی ایتم صفر کلیک کرده