سوالی رو خدمتون مطرح می کنم که احتمالا به درد خیلیها از جمله خودم می خوره .
در نرم افزاره بنده یک( 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'???????????????????????????????????????????????????
سوال
berayan 90
سلام و احترام به تمامی فعالان انجمن
سوالی رو خدمتون مطرح می کنم که احتمالا به درد خیلیها از جمله خودم می خوره .
در نرم افزاره بنده یک( scrollview ) قرارداره که مطالب زیادی در اون لیست میشن و قتی که یک رویداد اتفاق می افته این اسکرول از اول لود میشه در حقیقت (ScrollPosition =0) قرار می گیره .
بنده طبق راهنمایی چن تن از دوستان ، قبل از رویداد مقدار (ScrollPosition) رو دریافت کردم و بعد از رویداد اون رو دوباره درون (ScrollView1.ScrollPosition) قرار دادم خوب همه چیز درست شد .
اما فقط در شبیه ساز خود (b4a) اما وقتی فایل خروجی نرم افزار رو در شبیه ساز کامپیوتر(YouWave Android) و یا در( گوشی) نصب می کنی دوباره اسکرول به حالت 0 بر میگرده .
مشکل به نظر بنده از ** (Sub ScrollView1_ScrollChanged(Position As Int ** می باشد اما متاسفانه نمی دونم چطوری مقدار ScrollView1.ScrollPosition رو در اینجا تنظیم کنم که وقتی روی صفحه کلیک میشه اسکرول بر نگرد اول .
البته نکته رو بگم که لیست من با هر بار کلیک دکمه اسکرول رو حذف و دوباره از اول میسازه و بعد هم تنظیمات ScrollPosition بهش اعمال شده . که فقط در (b4a)درست عمل می کنه .
البته این کد نرم افزار نیست ولی تست ها رو اول درون اینجا انجام میدم بعد وارد نرم افزار می کنم . روی این کد مشکل ایجاد شده .
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 پاسخ به این سوال تاکنون داده شده است
ارسالهای توصیه شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.