2013-04-22 1 views
0

이것은 이상한 질문으로 보일 수 있지만 Appcelerator 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를 사용하면 반환 된 크기가 거의 모든 화면이므로 필요한 차원을 제공하지 못합니다.

답변

1

jbssm,

당신은 당신이 원하는 것을 달성하기 위해 다음과 같은 시도 할 수 있습니다 :

1.Define 창이나 부모 뷰 (있는 tableView의 및지도보기)의 레이아웃
'layout':'vertical'

2.Table.UI.SIZE (높이 : Titanium.UI.SIZE)의 높이를 tableView에 표시합니다. 즉, 테이블 뷰는 모든 내용을 표시하는 데 필요한 최소 공간을 차지합니다.

3. 원하는 top이 무엇이든간에 '10dp'또는 '20dp'를 작성하십시오.

여기에있는 속임수는 레이아웃을 설정 한 것입니다 : 수직. 상위보기에서 각보기의 세로보기는 위의보기와 관련이 있습니다. 그래서 '5dp'를 지정하면 아래쪽을 기준으로 표시됩니다 바로 위의보기 및 창의 맨 위에서 않습니다.이 경우 mapView 맨 tableView 아래쪽에서 계산됩니다.

+0

안녕하세요. 이 ** 거의 ** 의도 한 것처럼 작동합니다. 그러나이 코드를 사용하면 그룹화 된 테이블의 마지막 행은 대부분 누락됩니다. 어떤 아이디어? – jbssm

+0

테이블을 스크롤 할 때 나타 납니까? –

+0

지금 확인했는데 그렇습니다. – jbssm