Flex : 자동으로 표시 될 때 Scrollbar가 콘텐츠를 덮지 않도록합니다.
-
08-07-2019 - |
문제
플렉스가 수직 방향으로 스크롤 될 수있는 캔버스가 있으므로 캔버스의 속성을 다음과 같이 설정합니다.
verticalScrollPolicy="auto" horizontalScrollPolicy="off"
여기서 문제는 수직 스크롤 바가 나타날 때 내용을 다루는 것입니다. 콘텐츠 크기가 자동으로 조정되었을 것으로 예상했을 것입니다.
수직 스크롤 정책을 "on"으로 설정할 때는 내용도 포함되지 않습니다.
두 스크롤 정책을 'Auto'로 설정 한 경우 수직 스크롤 막대로 덮인 영역으로 스크롤하기 위해 수평 스크롤 막대도 얻을 수 있습니다.
수직 스크롤 막대가 표시 될 때 캔버스의 내용을 전달할 수있는 방법이 있습니까?
해결책
버그입니다. 보다 수직 ScrollPolicy 버그를 플렉스하십시오 해결 방법.
다른 팁
이 문제에 관한 부수적 인 참고 사항 : 실제로 버그가 아니라 알려진 (의도 된) 행동 :
"Flex는 스크롤 정책을
ScrollPolicy.ON
. 따라서 자동 스크롤 정책 (기본값)을 사용하는 경우 스크롤 막대가 버튼과 겹칩니다. 이 동작을 방지하기 위해 설정할 수 있습니다height
Hbox 컨테이너의 특성 또는 백분율 기반 너비를 설정하여 Hbox 컨테이너가 크기를 조정할 수 있습니다. Hbox 컨테이너의 높이를 변경하면 응용 프로그램의 다른 구성 요소가 자체 크기 규칙에 따라 이동하고 크기를 조정합니다. "
-- 에서 크기 조정 구성 요소 Flex 3 도움으로 "스크롤 막대 사용"
이 해결 방법을 찾아야했습니다 flex scrollpolicy.auto는 충분하지 않습니다 이 문제를 해결했기 때문입니다 수직 ScrollPolicy 버그를 플렉스하십시오 해결 방법은 저에게 효과가 없었습니다.
컨테이너를 기반으로하는 Vbox 또는 다른 구성 요소에서는 그런 문제를 해결했습니다.
잘못된:
<mx:VBox width="100%" height="100%"
verticalScrollPolicy="auto" horizontalScrollPolicy="off">
<mx:Repeater dataProvider="{hede}">
<custom:RenderItem ........../>
</mx:Repeater>
</mx:VBox>
스크롤 막대가 없습니다
작업 버전 :
<mx:VBox width="100%" height="100%"
**minHeight="1"** horizontalScrollPolicy="off">
<mx:Repeater dataProvider="{hede}">
<custom:RenderItem ........../>
</mx:Repeater>
</mx:VBox>
나도. 일반적으로 Flex에서 수직 스크롤 바에 문제가 있으므로 전체 응용 프로그램을 스크롤하기 위해 브라우저의 스크롤 바를 사용하는 것이 좋습니다. 여기에서 해결 방법을 찾을 수 있습니다. 플렉스 스테이지 크기를 조정하고 브라우저 스크롤 바를 사용하는 방법.
내가 사용하는 코드 :
Flex에서 :
ExternalInterface.call("setInitialFlashHeight", this.height);
내 html (javaScript)에서 :
function setInitialFlashHeight(newHeight) {
document.getElementById('my_flash').style.height = newHeight + 'px';
}
그리고 약간의 높이를 추가 (또는 제거)하려면 :
function addFlashHeight(height) {
var divHeight;
var obj = document.getElementById('my_flash');
if (obj.offsetHeight) {
divHeight = obj.offsetHeight;
} else if (obj.style.pixelHeight){
divHeight = obj.style.pixelHeight;
}
var newHeight = divHeight + height;
document.getElementById('my_flash').style.height = newHeight + 'px';
}
제거하려면 "+"대신 "-"를 사용합니다.