Titanium 检查钛合金中对象(即分组的tableView)的尺寸(顶部、底部、左侧、右侧位置)

Titanium 检查钛合金中对象(即分组的tableView)的尺寸(顶部、底部、左侧、右侧位置),titanium,screen,tableview,appcelerator,dimensions,Titanium,Screen,Tableview,Appcelerator,Dimensions,这似乎是一个奇怪的问题,但当在Appcelerator Tianium中为多个平台开发时,知道元素的终点将非常方便,因为设备有不同的尺寸 那么,有没有可能知道一个对象的起点和终点呢?例如,我有一个分组表视图,在它下面有一个映射,我想使用分组表视图下剩余的所有可用空间。我该怎么做 我尝试了以下方法: var winDetailView = Titanium.UI.currentWindow; var tableDetailRowData = getDetailData(); var tableD

这似乎是一个奇怪的问题,但当在Appcelerator Tianium中为多个平台开发时,知道元素的终点将非常方便,因为设备有不同的尺寸

那么,有没有可能知道一个对象的起点和终点呢?例如,我有一个分组表视图,在它下面有一个映射,我想使用分组表视图下剩余的所有可用空间。我该怎么做

我尝试了以下方法:

var winDetailView = Titanium.UI.currentWindow;
var tableDetailRowData = getDetailData();

var tableDetailView = Ti.UI.createTableView({
    headerTitle:'Object',
    style:Titanium.UI.iPhone.TableViewStyle.GROUPED,
    backgroundColor:'transparent',
    data:tableDetailRowData,
    height : Ti.UI.SIZE,
});
winDetailView.add(tableDetailView);


var mapView = Ti.Map.createView({
        top : 200, // this is approximately where my table ends (is there a way to know the exact place?)
        left : "10%",
        height : "90%", // this doesn't work, since it uses 90% of the device height pixels, not 90% of the remaining pixels below the top property
        width : "90%",
        mapType : Ti.Map.STANDARD_TYPE,
})
但这并不能解决问题。有什么想法吗

更新:
getSize()
属性似乎适用于某些对象。不幸的是,对于分组的tableView,返回的大小几乎是整个屏幕的大小,因此它没有提供必要的尺寸。

jbssm

您可以尝试以下方法来实现您的目标:

1.定义窗口或父视图(tableView和mapView)的布局
layout':”垂直“

2.为tableView指定Tianium.UI.SIZE的高度(高度:Tianium.UI.SIZE)。这意味着表视图将占用显示所有内容所需的最小空间

3.在地图视图的顶部写上“10dp”或“20dp”,无论您想要的顶部是什么


这里的诀窍是您已经设置了布局:垂直。在这样的父视图中,每个视图的顶部都是相对于其上方的视图。因此,如果您指定“5dp”,它将相对于其上方视图的底部,而不是从窗口的顶部。因此,在这种情况下,mapView的顶部将从窗口的底部计算tableView.

您好,谢谢。这几乎是我想要的。但是,使用这段代码,分组表的最后一行中的大部分都丢失了。有什么想法吗?当你滚动表格时它会出现吗?我现在检查了,是的。我试图删除表格的标题(不是我想做的,只是为了检查),但它仍然以这种方式缺少表格最后一行的一小部分。当然,我现在添加了它。我没有将窗口调用函数(来自另一个文件)放在那里,但我按照您的要求将
布局:'vertical'
属性放在那里。