【问题标题】:UI element get methods return NAN TitaniumUI 元素获取方法返回 NAN Titanium
【发布时间】:2015-01-19 23:22:49
【问题描述】:

我对钛 3.5.0 有疑问。当我想使用 getWidthgetTop 之类的方法根据布局中的前一个元素定位我的 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

任何想法如何解决这个问题?

【问题讨论】:

  • 你能显示一些代码吗?

标签: titanium titanium-mobile


【解决方案1】:

发生这种情况是因为您没有将宽度/顶部指定为数字数据类型,而是指定为字符串。 "100%""15dp"

getWidth() 返回数值数据类型IFF您在构造元素或调用 setter 方法时将数值传递给宽度参数。

此外,如果您在构建元素期间未指定宽度/顶部参数,它们将不会返回任何内容。

要获取元素的尺寸,您需要将它们添加到一些容器/父视图和postlayout 所有元素。完成后,您可以要求这样的尺寸:

element.size.width

【讨论】:

  • 谢谢@Funtik bu 我照你说的做了,现在我得到 0 :(
  • 根据这个答案stackoverflow.com/questions/13012421/… 我可以得到值,但我需要根据前一个项目来安排每个项目,所以每次我想添加新项目时使用事件几乎不会连线
  • 你把事情复杂化了。你能在一些类似 Paint 的软件中绘制所需的布局并将其附加到问题上吗?
  • 好的,但我发现当我在标签或 textfeild 中使用 label.getwidth() 时,我可以获得它的值,但是当我在滑块中使用 label.getWidth() 时,我得到了 Nan跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-15
  • 2014-02-16
  • 2015-01-10
  • 1970-01-01
  • 1970-01-01
  • 2019-03-07
相关资源
最近更新 更多