در برنامه پیامک وقتی متن تکست از یک حدی بیشتر میشه یه فضای خالی بین اون پیامک با پیامک بعدی ایجاد میشه از اسکرول ویو ساده استفاده کردم و از داخل کد ویو اد کردم
کد کلی به این صورت هست کد:
ScrollView1.Panel.Color = Colors.Transparent
Dim p1 As Panel
p1.Initialize("")
p1.LoadLayout("themplate")
ScrollView1.Panel.AddView(p1,0,PanelHeight,100%x,100dip)
LblItem.Text = Content.sBody
If bln =True Then
Label5.Text = "نتایج جستجو"
Else
Label5.text=sGroupName
End If
btnshare.Tag = Content.sBody
btncopy.Tag = Content.sBody
BtnBookmark.Tag = Content.sID
If myLibrary.checkBookmark(Content.sID) = True Then
BtnBookmark.SetBackgroundImage(LoadBitmap(File.DirAssets,"bookmark_ok.png"))
End If
ht=DB.art(LblItem.Text,LblItem,myfont,fontsize)
LblItem.TextColor=Colors.Black
p1.Height=ht+70dip
PanelHeight=PanelHeight+ht+70dip
Next
offset = 3
ScrollView1.Panel.Height=PanelHeight
Log("name : "&ScrollView1.Panel.Height)
Dim r As Reflector
r.Target = ScrollView1
r.RunMethod2("setVerticalScrollBarEnabled", False, "java.lang.boolean")
از این تابع استفاده کردم کد:
Sub art(txt As String,leb As Label,font As Typeface,size As Int) As Float
Dim before,after As Float
Dim Obj1 As Reflector
leb.text=txt
leb.TextSize=size
leb.Gravity=Gravity.CENTER
leb.Left=leb.Left
leb.Typeface=font
ht = StrUtil.MeasureMultilineTextHeight(leb , txt)
Obj1.Target = leb
before = Obj1.RunMethod("getLineHeight") 'Get the height of line BEFORE you change it
Obj1.Target = leb
Obj1.RunMethod3("setLineSpacing", .8, "java.lang.float", 1.5, "java.lang.float") 'Change the space between lines
Obj1.Target = leb
after = Obj1.RunMethod("getLineHeight") 'Get the height of line AFTER you change it
ht = ((after * ht)/before)
leb.Height = ht
Return ht
End Sub
سوال
eng.moaiedi 29
با سلام خدمت شما
در برنامه پیامک وقتی متن تکست از یک حدی بیشتر میشه یه فضای خالی بین اون پیامک با پیامک بعدی ایجاد میشه از اسکرول ویو ساده استفاده کردم و از داخل کد ویو اد کردم
کد کلی به این صورت هست کد:
ScrollView1.Panel.Color = Colors.Transparent Dim p1 As Panel p1.Initialize("") p1.LoadLayout("themplate") ScrollView1.Panel.AddView(p1,0,PanelHeight,100%x,100dip) LblItem.Text = Content.sBody If bln =True Then Label5.Text = "نتایج جستجو" Else Label5.text=sGroupName End If btnshare.Tag = Content.sBody btncopy.Tag = Content.sBody BtnBookmark.Tag = Content.sID If myLibrary.checkBookmark(Content.sID) = True Then BtnBookmark.SetBackgroundImage(LoadBitmap(File.DirAssets,"bookmark_ok.png")) End If ht=DB.art(LblItem.Text,LblItem,myfont,fontsize) LblItem.TextColor=Colors.Black p1.Height=ht+70dip PanelHeight=PanelHeight+ht+70dip Next offset = 3 ScrollView1.Panel.Height=PanelHeight Log("name : "&ScrollView1.Panel.Height) Dim r As Reflector r.Target = ScrollView1 r.RunMethod2("setVerticalScrollBarEnabled", False, "java.lang.boolean")از این تابع استفاده کردم کد:
Sub art(txt As String,leb As Label,font As Typeface,size As Int) As Float Dim before,after As Float Dim Obj1 As Reflector leb.text=txt leb.TextSize=size leb.Gravity=Gravity.CENTER leb.Left=leb.Left leb.Typeface=font ht = StrUtil.MeasureMultilineTextHeight(leb , txt) Obj1.Target = leb before = Obj1.RunMethod("getLineHeight") 'Get the height of line BEFORE you change it Obj1.Target = leb Obj1.RunMethod3("setLineSpacing", .8, "java.lang.float", 1.5, "java.lang.float") 'Change the space between lines Obj1.Target = leb after = Obj1.RunMethod("getLineHeight") 'Get the height of line AFTER you change it ht = ((after * ht)/before) leb.Height = ht Return ht End Subممنون میشم راهنمایی بفرمایید با تشکر.
لینک ارسال
به اشتراک گذاری در سایت های دیگر
1 پاسخ به این سوال تاکنون داده شده است
ارسالهای توصیه شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.