检查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的底部计算。
嗨,谢谢。这**几乎**就像我打算的那样工作。但是通过这段代码,分组表中的最后一行大部分都没有了。有任何想法吗? – jbssm 2013-04-22 15:30:05
当您滚动表格时是否出现? – 2013-04-22 15:33:11
我现在检查,是的,它确实。 – jbssm 2013-04-22 15:33:50