检查Titanium中对象(即GROUPED tableView)的尺寸(顶部,底部,左侧,右侧位置)

问题描述:

这似乎是一个奇怪的问题,但在Appcelerator Titanium中为多个平台开发时,方便地知道元素在哪里结束,因为这些设备具有不同的尺寸。检查Titanium中对象(即GROUPED tableView)的尺寸(顶部,底部,左侧,右侧位置)

那么,有没有可能知道对象的开始和结束?例如,我有一个分组表格视图,在它下面我有一张地图,我想要使用分组tableView下剩余的所有可用空间。我该怎么做呢?

我试过如下:

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()属性似乎与某些对象一起使用。不幸的是,使用Grouped tableView时,返回的大小几乎是所有的屏幕,所以它没有提供必要的尺寸。

jbssm,

你可以尝试以下操作来实现你想要的:

1.定义窗口或父视图(的tableView和MapView的)布局
layout':'vertical'

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

3.在mapView的顶部写上'10dp'或'20dp',无论你想要的顶部是什么。

这里的诀窍是你已经设置了layout:vertical.top这样的父视图中每个视图的顶部是相对于它上面的那个。所以如果你指定'5dp'它将关于底部的视图,而不是从窗口的顶部。因此,在这种情况下,mapView的顶部将从tableView的底部计算。

+0

嗨,谢谢。这**几乎**就像我打算的那样工作。但是通过这段代码,分组表中的最后一行大部分都没有了。有任何想法吗? – jbssm 2013-04-22 15:30:05

+0

当您滚动表格时是否出现? – 2013-04-22 15:33:11

+0

我现在检查,是的,它确实。 – jbssm 2013-04-22 15:33:50