2016-06-17 2 views
0

수직 레이아웃의 높이를 동적으로 설정해야합니다. 내 페이지 높이가 100px 인 헤더 이미지, 높이가 26px 인 탭이 주요 콘텐츠입니다. 나는 App.controller.js에 다음 코드를 작성했다. 그것은되지는SAPUI5의 컨트롤러에 CSS를 동적으로 추가하는 방법

는 "thisView.setHeight는 함수가 아닙니다"오류를 보여줍니다

// tab_layt is the id of vertical layout var thisView = this.getView().byId("tab_layt"); var height = jQuery(window).height() - (jQuery(".header").height() + jQuery(".tab").height()); thisView.setHeight(height);

작동 않습니다.

답변

1

sap.ui.layout.VerticalLayout에는 height이라는 속성이 없습니다.

레이아웃 높이는 하위 요소의 높이에 자동으로 정렬됩니다. 그러나 사용자 정의 CSS 클래스를 사용하여이를 덮어 쓸 수 있지만 실제로는 권장하지 않습니다.

thisView.addStyleClass("nameOfTheCssClass"); 

또는 전체 화면을 채우기 위해 자식 요소의 크기를 조정할 수 있습니다 -이 레이아웃 자체의 크기를 조정합니다. 예를 들어, 테이블을 사용하는 경우 외부 레이아웃 대신 테이블의 height 속성을 설정할 수 있습니다.

(변수 이름 thisView이없는 최고의 당신이 레이아웃에 참조하는 경우에 당신이 당신의 자신의 코드를 이해하려고 할 때, 나중에 오해를 일으킬 수 있습니다)

+0

감사합니다! 적절한 명명 규칙을 사용해야합니다. 나는 긴 양식을 가지고 화면에 맞지 않기 때문에 스크롤 레이아웃을 만드는 것을 생각했습니다. 또한 페이지 매기기가 많은 데이터가 없습니다. 레이아웃을 스크롤 가능하게 만드는 다른 솔루션은 없습니까? – Hari

+0

시각화 할 데이터에 따라 다릅니다. 목록, 테이블에는 스크롤 막대가 있습니다. ''집합의 요소에 더 많은 공간이 필요한 경우 페이지 객체에도 스크롤 막대가 포함됩니다. – nistv4n

+0

태그가 태그 내에 없으므로 스크롤바가 숨겨졌습니다. 이제 당신이 말했듯이, 나는 그 태그를 추가하고 스크롤바는 데이터에 따라 보입니다. 조언 주셔서 감사합니다 !! – Hari