2009-12-01 2 views
0

다음을 달성하려고했습니다 : 너비가 100 %로 설정된 LinkBar를 만들고 왼쪽에 4 개의 LinkButton을 놓고 다섯 번째 버튼을 오른쪽에 배치해야합니다. 처음에는 HBox에 2 개의 LinkBar 컨트롤을 넣으려고했지만 flex 응용 프로그램이 손상되어 빈 화면이 나타났습니다. 그런 다음 mx : Spacer를 linkbar의 dataProvider 속성에 넣으려고했으나 작동하지 않았으며 스페이서는 약 1 자 너비에 지나지 만 다섯 번째 버튼을 오른쪽으로 끝까지 밀지 않았습니다. 도와주세요, 고마워요.Flex LinkBar에서 "spacer"를 만드는 방법은 무엇입니까?

답변

2

클래스를 원숭이 패치해야 할 것입니다. LinkBar는 기본적으로 자식 사이에 스페이서 객체를 자동으로 추가하는 가로 상자입니다. 가 updateDisplayList 방법을 확인하십시오 - 분리기의 크기가 코드의이 비트에 설정되어 있습니다 :

if (isVertical()) 
{ 
... 
    separator.setActualSize(separatorWidth, verticalGap); 
... 
} 
else 
{ 
... 
    separator.setActualSize(horizontalGap, separatorHeight); 
... 
} 

당신은 어떻게 든이 동작을 변경해야합니다. 루프 반복자 "i"를 자식 목록의 총 개체 수 ("n")와 비교하여 개체의 마지막 공백을 검색하는 것이 좋습니다. 그 경우 너비를 100 %로 설정합니다. 또는 동일한 것의 명시 적으로 계산 된 버전 일 수 있습니다.

원숭이 패치가이 변경을 구현하는 가장 좋은 옵션 인 것처럼 보입니다. 예를 들어 파생 클래스에서 실제 클래스 외부의 스페이서 크기를 변경하려는 시도는 아마도 이 방법을 사용하면 크기를 재설정 할 수 있습니다.

클래스를 원숭이 패치하는 방법에 대한 자세한 내용은 this short presentation by Doug McCune을 보거나 this post by Jesse Warden을 확인하여 원숭이 패치를 사용하여 Flex 커서 기능을 업데이트하십시오.

+0

감사합니다. 이것에 대해 살펴 보겠습니다. 하지만 왜 두 개의 LinkBars를 나란히 놓을 수 없습니까? 나는 그것이 가장 쉬운 방법이라고 기대하고 있었다. –

+0

불행하게도 이것은 다음 두 가지 이유로 작동하지 않습니다. 1. 너비를 100 %로 설정할 수 없습니다 - 명시적인 픽셀 번호 여야합니다. 2. 마지막 구분 기호의 너비를 설정해도 마지막 LinkButton이 오른쪽으로 이동하지는 않습니다. LinkButton은 같은 위치에 있으며, 오른쪽으로 밀린 세로 분리 막대입니다. –

+0

아주 이상합니다 - 어딘가에 코드를 게시 할 수 있습니까? 구분 기호가 기본 상자 레이아웃 코드에 영향을 미치지 않거나 linkbutton 항목이 그 것과 별개로 렌더링된다는 것은 매우 이상합니다. LinkBar는 너무 복잡하지 않고 몇 시간 내에 올바르게이 스페이서를 구현할 수있는 솔루션을 작성할 수 있습니다. –

관련 문제