我有钛3.5.0的问题。当我想根据布局中的前一个元素使用getWidth
或getTop
之类的方法来定位我的ui元素时,我正在使用Nan,并且在控制台中我收到一条警告:
请求的维度值(nan)无效。改为使维度未定义。
我有scrollview
我想安排我的项目,所以我做了什么
这是我的滚动视图代码
var scrollView = Ti.UI.createScrollView({
contentWidth: 'auto',
contentHeight: 'auto',
backgroundColor:'#fff',
showVerticalScrollIndicator: false,
showHorizontalScrollIndicator: false,
height:"100%",
width: "100%",
top:36.6
});
和scrollableview代码
var view = Ti.UI.createView({
backgroundColor:'#fff',
borderRadius: 0,
height: 2000,
width: Ti.UI.FILL
});
然后我开始在视图中添加我的ui元素
var type =Ti.UI.createLabel({
text:"Type",
color:label_color,
right:207,
left:label_p_l,
font:{ fontFamily: customfont,fontSize:17},
top:37.5
});
var p_name=Ti.UI.createLabel({
text:"Property Name",
color:label_color,
left:label_p_l,
font:{ fontFamily: customfont,fontSize:17},
top:type.getTop()+label_h+32
});
所以现在它工作得很好,因为type有一个数值,甚至我用这种方式添加了三个元素,之后每个东西都完美地工作了 我已经添加了这样的第4个元素,现在当我开始得到Nan时。
var space_Slider = Titanium.UI.createSlider({
top:space.getTop()+space.getHeight()+15,
min:0,
max:1000,
value:0,
height:4,
backgroundColor:"#fff",
leftTrackImage:'/images/slider_color.png',
rightTrackImage:'/images/slider_color.png',
thumbImage:'/images/slider.png',
});
现在space.getTop()
开始返回Nan
任何想法如何解决这个问题?
答案 0 :(得分:1)
发生这种情况是因为您指定的宽度/顶部不是数字数据类型,而是字符串。 "100%"
,"15dp"
等
getWidth()
返回数值数据类型 IFF ,在构造元素或调用setter方法时,将数字传递给width参数。
此外,如果在构造元素期间未指定width / top参数,则它们不会返回任何内容。
要获取元素的尺寸,需要将它们添加到某个容器/父视图和postlayout
所有元素。完成此操作后,您可以询问以下尺寸:
element.size.width