난 임의의 크기의 항목 배열이 있습니다. Repeater 구성 요소에 각 항목에 대해 하나의 레이블을 표시하고 싶습니다. 나는 그들이 필요에 따라 5 개의 열과 많은 행을 가진 격자 레이아웃으로 표시되기를 원한다. Flex/ActionScript에서 어떻게 할 수 있습니까?플렉스 - 그리드 레이아웃이있는 리피터 구성 요소
어쩌면 내가 아직 보지 못했던 다른 방법이있을 수 있습니다. 따라서 어떤 제안도 환영합니다. 감사!
난 임의의 크기의 항목 배열이 있습니다. Repeater 구성 요소에 각 항목에 대해 하나의 레이블을 표시하고 싶습니다. 나는 그들이 필요에 따라 5 개의 열과 많은 행을 가진 격자 레이아웃으로 표시되기를 원한다. Flex/ActionScript에서 어떻게 할 수 있습니까?플렉스 - 그리드 레이아웃이있는 리피터 구성 요소
어쩌면 내가 아직 보지 못했던 다른 방법이있을 수 있습니다. 따라서 어떤 제안도 환영합니다. 감사!
리피터 대신 타일 목록을 사용합니다. 다음은 예입니다
너무 늦게 한 달하지만 난 TileList를 내게 줄 수없는 특정 기능을 필요로 어디 같은 상황에있었습니다. see my question here
그래서 내 중계기 그리드는 900 픽셀 (폭)이다. 각 열의 너비는 300 픽셀이며 각 행의 높이는 31 픽셀이며 중간에 공백이 1 픽셀 있습니다. 총 3 열.
코드 :
<mx:Repeater id="rptCities" dataProvider="{citiesArr}">
<mx:Canvas label="{rptCities.currentItem.city}" x="{rptCities.currentIndex%3 * 300}" y="{int(rptCities.currentIndex/3) * 32}" width="300" height="31">
<mx:Label text="{rptCities.currentItem.city}"/>
</mx:Canvas>
</mx:Repeater>
그래서 당신이 코드를 읽는 방법은 다음과 같습니다
시장의 부분이 중계기 내에서 캔버스에 처리됩니다. 보시다시피 각 캔버스는 300px 너비 (각 열 너비)와 31px 높이입니다. 모듈러스로 연주하면 요소의 x 위치를 정의 할 수 있습니다.
X = "{rptCities.currentIndex % 3 * 300}"
제 항목 : 0 % 3 ==의 X- 위치 : 0
의 DataProvider에 6 개 개의 항목이 생각한 * 300
초 항목 1 % 3 ==의 X- 위치 : 1 * 300
번째 항목 : 2 % 3 ==의 X- 위치 : 2 항 * 300
아이템 : 3 % 3 == x 위치 : 0 * 300
이는 요소의 x 위치를 처리합니다. 요소의 y- 위치 사이에 1px 공간을 원하기 때문에 32를 상수 값으로 정의했습니다. 숫자를 정수로 변환하면 반올림 된 값을 얻습니다 (기울임 꼴 값은 숫자 값이고 일반 글꼴 유형은 flex가 고려하는 정수입니다)
y = "{int (rptCities.currentIndex/3) * 32}"
제 상품 : 0/3 == Y 위치 0 * 32
초 항목 : 1/3 == Y 위치 0 * 32 (0.33)
번째 항목 : 2/3 == y- 위치 : 0 * 32 (0.66)
는 앞뒤로 항목: 3/3 == Y 위치 0 및 y : 32 인 1 *
중계기가 기재된 항목에 32 X 축 및 Y 위치는 X = 두 번째 행에
큰 대답은 죄송합니다.
아멘. dataProviders 및 itemRenderers를 좋아하는 방법을 배우십시오! –
나는이 해결책을 좋아하지 않지만, 내가하고있는 일을 위해, 그것은 효과가있다. 감사! 누군가가 그것을하는 다른 방법을 알고 있다면 여전히 궁금해? – davidemm
"사랑"하지 않을 항목이 확실하지 않습니까? 위의 솔루션에서 필요로하는 약간의 기능이 누락 되었습니까? – Shua