메인 컨트롤의 표시 영역에있는 더 큰 항목을 수용 할만큼 충분히 넓은 드롭 다운 목록이 필요합니다. (즉, MX 콤보 상자의 기능이있는 드롭 다운 목록) 가이드를 참조하십시오. 나에 관해서.changin 기본 드롭 다운 목록의 너비와 높이
답변
당신은 사용자 정의 DropDownList로 (원래 확장)를 만들고 dataProvider
세터와 measure()
메소드를 오버라이드 (override)합니다. dataProvider
세터에서는 invalidateSize()
을 호출해야하며 데이터 제공 업체를 반복하여 가장 큰 라벨 (라벨에 새 텍스트를 할당하고 너비를 비교할 수 있음)을 찾아야합니다.
Flex 예제의 this example을 확인하십시오. DropDownList
에 대한 스킨을 만들고 popUpWidthMatchesAnchorWidth="false"
속성을 설정하기 만하면됩니다.
그래, 나는 주어진 컨셉을 시도했다. 그러나 우리가 콤보 박스의 너비와 높이를 지정하지 않으면 플렉스 3에서 콤보 박스의 폭은 더 큰 엘레멘트를 수용 할만큼 충분히 넓다. 드롭 다운 목록에. 이제 flex 4에서 별도의 드롭 다운 목록 컨트롤을 사용합니다. 드롭 다운 목록의 너비와 높이를 지정하지 않으면 112 픽셀을 너비 (기본 너비)로 사용합니다. 내 요구 사항은, 만약 내가 드롭 다운 목록의 너비와 높이를 지정하지 않으면, 그것의 팝업에 큰 내용을 수용 할 수있을만큼 넓어야합니다. 이 요구 사항에 대해 저를 제안하십시오. – vengatesh
이렇게하면 드롭 다운 폭이 데이터 폭에 맞게 조정됩니다. 어디에서 코드를 가져 왔는지 예제를 잊어 버렸습니다. rowCount로 높이를 설정할 수 있다고 생각합니다.
package valueObjects.comboBox{
import flash.events.Event;
import mx.controls.ComboBox;
import mx.core.ClassFactory;
import mx.core.IFactory;
import mx.events.FlexEvent;
public class ExtendedComboBox extends ComboBox{
private var _ddFactory:IFactory = new ClassFactory(ExtendedList);
public function ExtendedComboBox(){
super();
}
override public function get dropdownFactory():IFactory{
return _ddFactory;
}
override public function set dropdownFactory(factory:IFactory):void{
_ddFactory = factory;
}
public function adjustDropDownWidth(event:Event=null):void{
this.removeEventListener(FlexEvent.VALUE_COMMIT,adjustDropDownWidth);
if (this.dropdown == null){
callLater(adjustDropDownWidth);
}else{
var ddWidth:int = this.dropdown.measureWidthOfItems(-1,this.dataProvider.length);
if (this.dropdown.maxVerticalScrollPosition > 0){
ddWidth += ExtendedList(dropdown).getScrollbarWidth();
}
this.dropdownWidth = Math.max(ddWidth,this.width);
}
}
override protected function collectionChangeHandler(event:Event):void{
super.collectionChangeHandler(event);
this.addEventListener(FlexEvent.VALUE_COMMIT,adjustDropDownWidth);
}
}
}
package valueObjects.comboBox{
import mx.controls.List;
public class ExtendedList extends List{
public function ExtendedList(){
super();
}
public function getScrollbarWidth():int{
var scrollbarWidth:int = 0;
if (this.verticalScrollBar != null){
scrollbarWidth = this.verticalScrollBar.width;
}
return scrollbarWidth;
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" mlns:comboBox="valueObjects.comboBox.*" >
<comboBox:ExtendedComboBox labelField="data.totext()" itemRenderer="mx.controls.Label" />
</mx:Canvas>
플렉스 3에서는 콤보 상자의 너비와 높이를 지정하지 않으면 콤보 상자의 너비가 드롭 다운 목록의 큰 요소를 수용 할만큼 충분히 넓습니다. 이제 flex 4에서 별도의 드롭 다운 목록 컨트롤을 사용합니다. 드롭 다운 목록의 너비와 높이를 지정하지 않으면 112 픽셀을 너비 (기본 너비)로 사용합니다. 내 요구 사항은, 만약 내가 드롭 다운 목록의 너비와 높이를 지정하지 않으면, 그것의 팝업에 큰 내용을 수용 할 수있을만큼 넓어야합니다. 이 질문에 나를 제발 제안하십시오 – vengatesh
정확히 내 대답에 게시 된 클래스 파일을 않습니다. 아직 사용 해본 적이 있습니까? –
는 다음 코드에 의해 달성된다
public override function set dataProvider(value:IList):void
{
var length:Number = 0;
var array:Array = value.toArray();
super.dataProvider = value;
var labelName:String = this.labelField;
var typicalObject:Object =new Object();
for each(var obj:Object in array)
{
var temp:Number = obj[labelName] .length;
if(length < temp)
{
length = temp;
Alert.show(" length "+length.toString());
typicalObject = obj;
}
//length = length < Number(obj[labelName].length) ? Number(obj[labelName].length) : length
//Alert.show(obj[labelName].length);
this.typicalItem = typicalObject;
}
}
콤보 상자의 드롭 다운 목록 높이를 높이려면 "rowCount" 속성을 사용하십시오. 이것은 플렉스 3.6.0
- 1. 드롭 다운 목록의 기본값
- 2. 드롭 다운 목록의 텍스트 맞춤
- 3. 드롭 다운 목록의 선택된 색인
- 4. 면도기 드롭 다운 목록의 IEnumerable
- 5. 드롭 다운 목록의 스크롤 막대
- 6. MVC3 - 컨트롤러에서 드롭 다운 목록의 내용에 액세스하기
- 7. QPainter 너비와 높이
- 8. SmartGWT Calendar 너비와 높이
- 9. Silverlight의 최대 너비와 높이
- 10. PopupWindow 너비와 높이
- 11. UIWebView 너비와 높이 설정
- 12. 입력란 너비와 높이 : 변경 방법
- 13. 드롭 다운 목록의 내용 업데이트하기 Javascript/PHP
- 14. 드롭 다운 목록의 SelectedIndexChanged 이벤트에 메시지로드
- 15. 드롭 다운 목록의 데이터는 어떻게 저장합니까?
- 16. JQuery 선택 드롭 다운 목록의 텍스트 업데이트
- 17. MVC의 html 드롭 다운 목록의 SelectedValue
- 18. 드롭 다운 목록의 표 생성에 도움이 필요합니다.
- 19. 닫을 때 드롭 다운 목록의 색 변경
- 20. 양식 드롭 다운 목록의 스타일은 어떻게 지정합니까?
- 21. 드롭 다운 목록의 옵션 값을 동적으로 변경하십시오.
- 22. 드롭 다운 목록의 Datavaluefield가 작동하지 않습니다.
- 23. 드롭 다운 목록의 C# 코딩 문제
- 24. 는 드롭 다운 상자에 목록의 높이를 조정
- 25. 자동 완성 드롭 다운 상자의 높이 증가
- 26. 기본 드롭 다운 메뉴 (jQuery를)
- 27. 드롭 다운 목록의 드롭 컨테이너 표시/숨기기 방법
- 28. A 태그의 너비와 높이 설정
- 29. 피커 뷰의 너비와 높이 감지
- 30. gtkimage 너비와 높이 가져 오기
나도 sameway에서 생각했다. 그러나 나의 상사는이 bahaviour.so를 달성하기 위해 anyother 자산을 발견 할 것을 나에게 말했다. 이것에 관해 나를 안내 해주세요 – vengatesh
그것은 그것을 달성하기 위해 기존의 속성을 조정할 방법이없는 것 같습니다. 죄송합니다. – Constantiner
오,이 문제에 대해 저에게 많은 도움을 주신 것에 감사드립니다. – vengatesh