Flex : 자동으로 표시 될 때 Scrollbar가 콘텐츠를 덮지 않도록합니다.

StackOverflow https://stackoverflow.com/questions/292826

  •  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';
}

제거하려면 "+"대신 "-"를 사용합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top