注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

沉默蜂B4A安卓编程

国内资料最全的B4A资料库

 
 
 

日志

 
 

[原创]尝试解决Spinner硬伤  

2014-01-23 15:53:53|  分类: 自带控件 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

[原创]尝试解决Spinner硬伤 - 沉默蜂QQ793136625 - 沉默蜂
隐藏的Spinner控件父面板为Activity 时的运行效果


[原创]尝试解决Spinner硬伤 - 沉默蜂QQ793136625 - 沉默蜂
隐藏的Spinner控件父面板为某一个 Panel 控件时的运行效果(详见下面的例程源码)
 


#Region 代码说明

'版本:2014-01-24
'设计:沉默蜂(QQ793136625)
'博客:http://silentbees.blog.163.com
'说明:
'Spinner 被翻译成 “下拉列表框”或“微调控件”,我觉得最合理的翻译应是 “不可编辑下拉列表框”
'隐藏下拉列表框然后单击标签显示下拉列表框
'下拉列表框控件保持默认的文本色和背景色不变,
'使得弹出时的列表无论是文本色和背景色有一个很好的视觉效果

#End Region

#Region  Project Attributes 
#ApplicationLabel: B4A 示例
#VersionCode: 1
#VersionName: 
'SupportedOrientations(支持的方向) 值可以是: unspecified(未指定), landscape(纵向)或portrait(横向)。
#SupportedOrientations: unspecified
#CanInstallToExternalStorage: False
#End Region

#Region  Activity Attributes 
#FullScreen: False
#IncludeTitle: True
#End Region

Sub Process_Globals
'这里声明的全局变量在应用启动时被使用。
'这里声明的变量能被所有模块使用。

End Sub

Sub Globals
'这里的声明的全局变量在Activity 创建时声明。
'这里声明的变量只能在此模块使用。
Dim lblTag As Label
Dim spSpinner As Spinner
Dim pnlPanel As Panel

End Sub

Sub Activity_Create(FirstTime As Boolean)

pnlPanel.Initialize("")
pnlPanel.Visible=True

lblTag.Initialize("lblTag")
lblTag.Text="下拉列表框"
lblTag.Gravity=Gravity.CENTER_HORIZONTAL+Gravity.CENTER_VERTICAL
lblTag.Color=Colors.LightGray
lblTag.TextColor=Colors.White
spSpinner.Initialize("spSpinner")
spSpinner.Visible=False
For  i=1 To 5
spSpinner.Add(2000+i)
'填充Spinner控件弹出时的列表项目
Next

Activity.AddView(lblTag    ,20dip ,100dip,77dip,25dip)
Activity.AddView(pnlPanel ,lblTag.Left ,lblTag.Top+lblTag.Height ,lblTag.Width ,1)
pnlPanel.AddView(spSpinner,0 ,0,pnlPanel.Width,1)
'经过我的反复测试,发现模拟点击隐藏的 spSpinner 控件时,弹出的列表是显示在它的父控件的左上角的
'于是我就把这个隐藏的 spSpinner 控件放置在一个高度只有1的Panel面板控件上

' lblTag.BringToFront
'这句代码可以不加的,这句代码的作用是将lblTag在spSpinner控件上面显示,但这个例程中spSpinner是隐身的


End Sub


Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub

Sub lblTag_Click 

'下面的代码有点像模块点击。
'隐藏下拉列表框然后单击标签显示下拉列表框
'关于模拟点击我是参考下面的帖子
'[原创]中国版的B4A日历控件
'B4A中模拟点击控件  
Dim r As Reflector
r.Target =spSpinner
r.RunMethod("performClick")
'也不知什么原因这个弹出的列表就一直在窗体的左上角显示

End Sub

Private Sub spSpinner_ItemClick (Position As Int, Value As Object)
'点击Spinner控件弹出的列表项目时触发的事件

    lblTag.Text=spSpinner.SelectedItem
'库 Core > 类 Spinner > 属性 SelectedItem
'SelectedItem As String '
'返回选择的项目的值
End Sub


 
  评论这张
 
阅读(208)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017