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

درج سه تا لیبل در اسکرول ویو و تعیین اندازه؟


seyed_27

سوال

بسمه تعالی

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

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

1

2

3

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

اشکال کجاست

خودم فکر میکنم در خط ذیل باشه

 sv.Panel.AddView(l1,20,0%y,100%x,100%y)
   sv.Panel.AddView(l2,20,18%y,100%x,100%y)
   sv.Panel.AddView(l3,20,50%y,100%x,100%y)

For i = 0 To cur.RowCount-1
       cur.Position = i
       s =  cur.GetString("matn")

   Next

   sv.Panel.AddView(l1,20,0%y,100%x,100%y)
   sv.Panel.AddView(l2,20,18%y,100%x,100%y)
   sv.Panel.AddView(l3,20,50%y,100%x,100%y)
   l1.Width =sv.Panel.Width +70%x
   l2.Width =sv.Panel.Width +70%x
   l3.Width =sv.Panel.Width +70%x


   l1.TextSize = 30
   l2.TextSize = 30
   l3.TextSize = 30


   l1.Text=s.SubString2(0,200)
   l2.Text=s.SubString2(201,400)
   l3.Text=s.SubString2(401,600)

  k1 = su.MeasureMultilineTextHeight(l1,s.SubString2(0,200))
k2 = su.MeasureMultilineTextHeight(l2,s.SubString2(201,400))
    k3 = su.MeasureMultilineTextHeight(l3,s.SubString2(401,600))

   l1.Height = k1
   l2.Height = k2
   l3.Height = k3

sv.Panel.Height = k1+k2+k3

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

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

اینکه فرمودید اندازه ای برای آیتم ها در نظر بگیریم همه به یک اندازه میشن

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

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

هنوز این خطا رو دارید؟

بله

به این خط گیر میده جابجاش هم کردم فایده ای نداشت.


       ListView1.SingleLineLayout.Label.Height=l1.Height

لطفا به سوال #9 پاسخ بدید.

اینهم سورسم


Sub Activity_Create(FirstTime As Boolean)



Dim i As Int
   Activity.LoadLayout("Matlab")
   sql1.Initialize(File.DirInternal,"a11.db",False)



   cur= sql1.ExecQuery("SELECT * FROM mytable")


   '______________________________________________________________
   If sql1.IsInitialized=False Then
       sql1.Initialize(File.DirInternal,"a11.db",False)
   End If 
'    __________________________________________________________________

   cur = sql1.ExecQuery("SELECT * FROM mytable WHERE id =1")


   EditText1.Text=  sv.ScrollPosition

   Dim l1 As Label
   l1.Initialize("")
   l2.Initialize("")
   l3.Initialize("")
   l1.TextColor = Colors.Black
   l1.Gravity = Gravity.RIGHT
   l2.TextColor = Colors.Black
   l2.Gravity = Gravity.RIGHT
   l3.TextColor = Colors.Black
   l3.Gravity = Gravity.RIGHT


   myfont = Typeface.LoadFromAssets("bmitra.ttf")



'''''''''''''''''''''''''''''''


   For i = 0 To cur.RowCount-1
       cur.Position = i
       s =  cur.GetString("matn")

   Next



   l1.TextSize = 30
   l2.TextSize = 30
   l3.TextSize = 30


   l1.Text=s.SubString2(0,10000)
'    l2.Text=s.SubString2(5000,10000)
'    l3.Text=s.SubString2(10000,20000)

'


ListView1.Initialize("ListView1") 

'

   ListView1.ScrollingBackgroundColor = Colors.Transparent
   ListView1.SingleLineLayout.ItemHeight = 50%y
   ListView1.SingleLineLayout.Label.TextSize = 20
   ListView1.SingleLineLayout.Label.TextColor = Colors.Red 
   ListView1.SingleLineLayout.Label.Gravity = Gravity.RIGHT
   ListView1.FastScrollEnabled = True




       ListView1.AddSingleLine(s.SubString2(0,10000))
       ListView1.AddSingleLine(s.SubString2(10000,20000))
       ListView1.AddSingleLine(s.SubString2(20000,30000))
       ListView1.AddSingleLine(s.SubString2(30000,40000))
       ListView1.AddSingleLine(s.SubString2(40000,50000))
       ListView1.AddSingleLine(s.SubString2(50000,60000))
       ListView1.AddSingleLine(s.SubString2(60000,70000))
       ListView1.AddSingleLine(s.SubString2(70000,80000))
       ListView1.AddSingleLine(s.SubString2(80000,90000))
       ListView1.AddSingleLine(s.SubString2(90000,100000))
       ListView1.SingleLineLayout.Label.Width =ListView1.Width-10%x
       ListView1.SingleLineLayout.Label.Height=l1.Height 


End Sub


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

چرا اومدی با لیست ویو گرفتی لیبل رو *che?*

ListView1.SingleLineLayout.Label.Height=l1.Height 

اینجور پیش برو

ListView1.SingleLineLayout.Label.Height=50%y
l1.Height =2%y

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

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

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

میتونی اینکارو بکنی

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

label1.top=0
label2.top=label1.height
label3.top=label2.height

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

sv1.panel.height=label3.top +label3.height

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

وقتی ارتفاع لیبل ها رو با متن ست کردی ببنویس

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

ما چیزی به نام اسکرول ویو پیشرفته داریم غیر از همین اسکرول ویو معمول بیسیک

اگر بله لطفا راهنمایی بفرمایید امکاناتش چیه و کجا میشه تهیش کرد؟

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

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

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

ما چیزی به نام اسکرول ویو پیشرفته داریم غیر از همین اسکرول ویو معمول بیسیک

اگر بله لطفا راهنمایی بفرمایید امکاناتش چیه و کجا میشه تهیش کرد؟

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

دوست عزیز چرا دقت نمیکنی میگم بعد ست کردن متن

یعنی اول کدی که ارتفاع لیبلو تغییر میده بنویس بعد کدهایی که من دادم

حبل و المتین هم دقیقا همین کارو انجام داده

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

جوینده یابندست

یافتم

لیست ویو حرفه ای با امکان آیتم با سایزهای مختلف و امکان CustomListView

هدیه به دوستان

صلوات فراموش نشه

scrolv.zip

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

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

میخوام این حالت به ترتیب باشه

یعنی برنامه صبر کنه وقتی تمام متن در لیبل یک لود شد و متن دوم رو در لیبل دوم لود که و همینطور سوم

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

میخوام بین لود شدن هر لیبل وقفه ای ایجاد بشه تا لود کامل بشه بعد متن لیبل دوم رو بارگزاری کنه

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

راه دیگه ای هست؟

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

بیا یه کارکنیم یه پولی به من بده کلشو واست مینویسم بدون customlistview

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

بیا یه کارکنیم یه پولی به من بده کلشو واست مینویسم بدون customlistview

خیلی باحالیدا

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

بیا یه کارکنیم یه پولی به من بده کلشو واست مینویسم بدون customlistview

تبلیغات ممنوعه در صورت تکرار 7 روز اخراج

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

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

میخوام این حالت به ترتیب باشه

یعنی برنامه صبر کنه وقتی تمام متن در لیبل یک لود شد و متن دوم رو در لیبل دوم لود که و همینطور سوم

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

میخوام بین لود شدن هر لیبل وقفه ای ایجاد بشه تا لود کامل بشه بعد متن لیبل دوم رو بارگزاری کنه

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

راه دیگه ای هست؟

بیا ارتفاع لیبل رو که گرفتی اعمال نکن مثلا ارتفاع لیبل 100dip میشه بیا با یه تایمر از 0 شروع کن +1 کن تا بصورت کشویی لود شه بعد یه شرط بزار که وقتی ارتفاع برابر اونی شد که کامل متن ست شه بیاد دومی رو لود کنه مثل قبل

و مث چیزی که گفتم چینششون رو درست کن

اگه منظورتو درست نفهمیدم یکم توضیح بده

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

از Thread استفاده کردم اما موقع اجراش میگه sub AddTextItem notfound

اشکال از دستوره؟

AddTextItem یه sub در ماژوله که در خط اول کد ذیل تعریف شده

بجای null ار me هم استفاده کردم همین پیام رو داد و همچنین بجاش clv1 نوشتم باز هم همین شد

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


clv1.Initialize(Me, "clv1")
ArrayMyThread.Start(Null,"AddTextItem",Array As Object((s.SubString2(10000,20000)),"d"))

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

به نظر بنده از یک پنل و 3تا اسکرول ویو استفاده کنید بهتره و کارتون ساده تره.

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

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

به نظر بنده از یک پنل و 3تا اسکرول ویو استفاده کنید بهتره و کارتون ساده تره.

میشه کد رو تصحیح بفرمائید

منظورتون رو نگرفتم

این برام مهمه که با تمام شدن متن اول متن دوم بیاد و ...

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

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

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

هم با Thread میتونید و هم با Timer.

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

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

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

چیزی رو که میگید با لیست ویو بنده تست نکردم ولی اینو بدونید واسه هر آیتم لیست ویو نمیتونید ارتفاع جداگونه در نظر بگیرید هر تغییر ااندازه و رنگ و فونت و ارتفاع واسه همه آیتم ها در نظر گرفته میشه.

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

بایگانی شده

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

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

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