2010-07-16 4 views
3

3 개의 세로 패널이있는 가로 패널이 있습니다. verticalpanels에는 맞춤 위젯이 있습니다.Gwt VerticalPanel 셀 높이

모든 verticalpanels에는 동일한 높이 (내부에 다른 위젯 수가 있더라도)가 있어야하고 빈 공간에 버튼이 있어야합니다.

그래서 저는 모든 패널 높이 = 100 %와 버튼의 높이 = 100 %를 넣어.

문제는 verticalpanel 세포의 높이가 내 위젯보다 큰 것을, 그래서 모든 verticalpanels 위젯 사이에 공백을 떠났다.

Here is an example

어떻게 내 위젯의 높이로 verticalpanels 세포의 높이를 조정할 수 있습니다. 위젯은 위의 예와 같이 이미지가 아니므로 위젯 높이를 알 수 없습니다.

나는이 문제에 많은 시간을 가지고, 들으 도움이 될 것입니다 anyidea !!!!

답변

0

그것을 시도하지 않은,하지만이 일을하거나 적어도 당신에게 시작하는 무언가를 제공해야합니다

VerticalPanel.setCellHeight(yourWidget, Integer.toString(yourWidget.getElement().getOffsetHeight())+"px"); 

그것은 무엇을 : setCellHeight()가 셀 위젯의 높이를 설정하면 통과에 함수에.
함수의 두 번째 매개 변수는 해당 셀의 높이입니다. 너는 높이를 모르기 때문에 이것은 약간 까다로워진다. getElement()는 해당 요소에 당신이 getOffsetHeight를 호출 할 수 있습니다, 브라우저의 DOM에 그 위젯의 요소를 얻을 수()와
. 브라우저가 픽셀과 같은하지 EM 또는 무언가 알 수 있도록 그것을 "픽셀"을 문자열로 캐스팅하고 연결할 필요가 있으므로
getOffsetHeight()는 정수를 반환합니다.

+0

들으, getOffsetHeight와 나는 위젯의 높이를 얻을 수 있습니다. 하지만 위젯을 패널에 추가 한 후에 높이를 사용하면 높이가 0px가됩니다. onLoad() 메서드를 사용하면 위젯의 높이가 계산되지만 스타일을 적용하기 전에 위젯의 높이가 계산됩니다. 스타일을 적용한 후 위젯 높이를 가져 오는 방법을 사용해야합니까 ??? 다시 thx !!! – david

+0

이걸 Cell의 높이에 사용하는 것이 논리적 인 것처럼 보입니다. 내가 가지고있는 다른 요구 사항은 Horizontal Aligment를 설정하는 것과 같은 방식으로했다. 그러나 효과가 없습니다. 작동하지 않습니다. 아직 이유를 모릅니다. 나중에 내가 게시 할 수있는 anwser를 찾으십시오. –

+0

무엇인지 알아 냈습니다. 아주 간단합니다. 먼저 (위젯)을 추가하고 나중에 값 (가로 정렬 및 높이)을 배치하십시오 : 'verticalPanel.add (widget);' 'vertialPanel.setCellHeight (widget, "30px");' –