【问题标题】:Titanium "label.width" works for iOS but not for AndroidTitanium "label.width" 适用于 iOS 但不适用于 Android
【发布时间】:2012-09-13 10:16:06
【问题描述】:

我正在用钛开发一个应用程序,并成功完成了 iOS 版本。 Android 存在一些问题,这里有一个。

视图包含许多标签,以格式显示数据 A:B(注意 B 为粗体)。那个粗体部分是必要的,也是我需要两个标签的原因。

这是我正在使用的代码:

if(restaurant && !(restaurant=='no' && restaurant.length=='2')){
    var restaurant_label = Ti.UI.createLabel({
        text:'Restaurant:',
        left:3,
        height:20,
        width:'auto',
        top:0,
        textAlign:'left',
        color:'#000',
        font:{
            fontFamily:'Helvetica Neue',
            fontSize:13,
            fontWeight:'Regular'
        }
    });
    view.add(restaurant_label);
    var restaurant_value = Ti.UI.createLabel({
        text:restaurant,
        left:restaurant_label.width+10,
        height:'auto',
        width:'auto',
        top:-18,
        textAlign:'left',
        color:'#000',
        font:{
            fontFamily:'Helvetica Neue',
            fontSize:13,
            fontWeight:'Bold',
            fontStyle:'Italic'
        }
    });
    view.add(restaurant_value);
    check_localservices = false;
}

“值”标签需要在正确的位置,但是android似乎无法获取之前添加的标签的宽度。

什么给了?

【问题讨论】:

  • 欢迎来到 Titanium 和大多数(全部?)所谓的跨平台解决方案的痛苦。这类问题经常发生。

标签: android ios titanium


【解决方案1】:

在错误报告中出现了一些关于 label.width 查询应该报告什么的问题。根据 1.7 版的错误报告,对您的查询的正确响应应在 Android 上返回“自动”。之所以如此,是因为您将“auto”作为宽度值。它会返回“自动”吗?

https://jira.appcelerator.org/browse/TIMOB-3202

碰巧那里列出了正确的代码以获得您正在寻找的值。我没有对此进行测试,但看来您查询的值可能有误。

对于您的情况,您似乎想使用:

var restaurant_value = Ti.UI.createLabel({
        text:restaurant,
        left:restaurant_label.size.width+10, // <===== size
        height:'auto',
        width:'auto',
        top:-18,
        textAlign:'left',
        color:'#000',
        font:{
            fontFamily:'Helvetica Neue',
            fontSize:13,
            fontWeight:'Bold',
            fontStyle:'Italic'
        }
    });

根据 cmets,您可能还需要在“打开”窗口后查询 size 属性。如果你看一下 Paul Dowsett 的回答,他有一个监听“open”事件的例子。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-07
    • 2017-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多