رفتن به مطلب
  • 0

تنظیمات ScrollView1.ScrollPosition


berayan

سوال

سلام و احترام به تمامی فعالان انجمن

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

در نرم افزاره بنده یک( scrollview ) قرارداره که مطالب زیادی در اون لیست میشن و قتی که یک رویداد اتفاق می افته این اسکرول از اول لود میشه در حقیقت (ScrollPosition =0) قرار می گیره .

بنده طبق راهنمایی چن تن از دوستان ، قبل از رویداد مقدار (ScrollPosition) رو دریافت کردم و بعد از رویداد اون رو دوباره درون (ScrollView1.ScrollPosition) قرار دادم خوب همه چیز درست شد .

اما فقط در شبیه ساز خود (b4a) اما وقتی فایل خروجی نرم افزار رو در شبیه ساز کامپیوتر(YouWave Android) و یا در( گوشی) نصب می کنی دوباره اسکرول به حالت 0 بر میگرده .

مشکل به نظر بنده از ** (Sub ScrollView1_ScrollChanged(Position As Int ** می باشد اما متاسفانه نمی دونم چطوری مقدار ScrollView1.ScrollPosition رو در اینجا تنظیم کنم که وقتی روی صفحه کلیک میشه اسکرول بر نگرد اول .

البته نکته رو بگم که لیست من با هر بار کلیک دکمه اسکرول رو حذف و دوباره از اول میسازه و بعد هم تنظیمات ScrollPosition بهش اعمال شده . که فقط در (b4a)درست عمل می کنه .

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

Sub Process_Globals




End Sub


Sub Globals


Private SetPanel As Panel
Private ScrollView1 As ScrollView
Dim EditText1 As EditText
Dim redlist As List
Dim greenlist As List
Private BtnRed As Button
Private BtnGreen As Button
Dim set As Int
Dim pos As Int


End Sub
Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("Layout1")
ScrollView1.ScrollPosition=set'*******************************************
EditText1.Initialize("EditText1")
redlist.Initialize
greenlist.Initialize
Dim stop As Int
stop = 2%y
For i = 0 To 6
Dim p As Panel
p.Initialize("p")
ScrollView1.Panel.AddView(p,0,stop,100%x,35%y)
stop = stop + 30%y
p.LoadLayout("Panels")
BtnRed.Tag = ""&(i)
BtnRed.Text = "Red"&(i)
BtnGreen.Text = "Green"&(i)
BtnGreen.Tag = "green"&(i)
redlist.add(""&(i))
greenlist.add("green"&(i))
ScrollView1.Panel.Height = stop
Next
Dim set As Int
set = ScrollView1.ScrollPosition
End Sub


Sub btnclick
ScrollView1.RemoveView
Activity.LoadLayout("Layout1")
ScrollView1.ScrollPosition=set'*******************************************
EditText1.Initialize("EditText1")
redlist.Initialize
greenlist.Initialize
Dim stop As Int
stop = 2%y
For i = 0 To 6
Dim p As Panel
p.Initialize("p")
ScrollView1.Panel.AddView(p,0,stop,100%x,35%y)
stop = stop + 30%y
p.LoadLayout("Panels")
BtnRed.Tag = ""&(i)
BtnRed.Text = "Red"&(i)
BtnGreen.Text = "Green"&(i)
BtnGreen.Tag = "green"&(i)
redlist.add(""&(i))
greenlist.add("green"&(i))
ScrollView1.Panel.Height = stop
Dim p2 As Button
p2 = Sender
EditText1.Text= p2.tag
If redlist.Get(i) = EditText1.Text Then
SetPanel.Color=Colors.Red
End If
Next




End Sub


Sub Activity_Resume


End Sub


Sub Activity_Pause (UserClosed As Boolean)


End Sub


Sub BtnRed_Click
Dim set As Int
set = ScrollView1.ScrollPosition
Dim p2 As Button
p2 = Sender
EditText1.Text= p2.tag
'========================================
If redlist.Get(0) = EditText1.Text Then
btnclick
End If
'========================================
If redlist.Get(1) = EditText1.Text Then
btnclick
End If
'========================================
If redlist.Get(2) = EditText1.Text Then
btnclick
End If
'========================================
If redlist.Get(3) = EditText1.Text Then
btnclick
End If
'========================================
If redlist.Get(4) = EditText1.Text Then
btnclick
End If
'========================================
End Sub


Sub BtnGreen_Click

End Sub


'-----------------------------------------------
Sub scr '????????????????????????????????????????????????
pos = ScrollView1.ScrollPosition
ScrollView1.ScrollPosition = pos
End Sub
'------------------------------------------------
Sub ScrollView1_ScrollChanged(Position As Int)
scr'???????????????????????????????????????????????????

End Sub

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

1 پاسخ به این سوال تاکنون داده شده است

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

دوستان مشکلم حل شد ScrollView1.ScrollPosition=set باید بعد ازend if قرار میدادم .

البته دوباره که تست کردم متوج شدم قبل از دستور ScrollView1.ScrollPosition=set باید یک("msgbox(set,"setقرار بدم تا در گوشی درست عمل کنه اگر این کارو انجام ندم و فقط دستور رو بزارم درست کار نمی کنه .

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

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

بایگانی شده

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

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

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