나는 Expanded
및 Flexible
위젯을 모두 사용했으며 동일하게 작동하는 것 같습니다.
확장형과 유연성의 차이점은 무엇입니까?
나는 Expanded
및 Flexible
위젯을 모두 사용했으며 동일하게 작동하는 것 같습니다.
확장형과 유연성의 차이점은 무엇입니까?
답변:
Expanded
의 약어입니다 Flexible
이 방법으로 확장 사용 :
Expanded(
child: Foo(),
);
다음과 완전히 동일합니다.
Flexible(
fit: FlexFit.tight,
child: Foo(),
);
일부 반응 형 레이아웃에서 유용한 다른을 원할 때 Flexible
over 를 사용할 수 있습니다 .Expanded
fit
의 차이 FlexFit.tight
와는 FlexFit.loose
느슨한 그 아이가 아이가 사용 가능한 모든 공간을 채우기 위해 꽉 힘 동안 최대 크기를 가질 수 있도록하는 것입니다.
Maximum size
그리고 Available space
여기에 같은 뜻?
Flexible.tight
아이들이 사용 가능한 전체 공간을 차지하도록 강제하고 아이들이 Flexible.loose
원하는 것을 할 수 있도록합니다. 어떤 아이들은 자신의 유형에 따라 전체 공간을 차지하고 일부는 차지하지 않을 수 있습니다.
Flexible 아래의 위젯 은 Fit 파라미터를 사용하여 변경할 수 있지만 기본적으로 WRAP_CONTENT 입니다.
Expanded 아래의 위젯 은 MATCH_PARENT 이며 flex를 사용하여 변경할 수 있습니다 .
Expanded
- Flexible
세트 핏입니다.
class Expanded extends Flexible {
const Expanded({
Key key,
int flex = 1,
@required Widget child,
}) : super(
key: key,
flex: flex,
fit: FlexFit.tight,
child: child
);
}
당신이 사용하는 경우 유일한 차이점 Flexible
대신은 Expanded
, 즉 Flexible
자식이보다 같거나 작은 폭이 할 수 Flexible
있는 동안, 자신 Expanded
의 힘의 자녀가의 동일한 폭을 갖도록 Expanded
. 그러나 모두 Expanded
와 Flexible
스스로 크기를 조정할 때 자녀의 폭을 무시합니다.
Row(children:[
Flexible(
child: Container(color: Colors.red, child: Text('This is a very long text that won’t fit the line.'))),
Flexible(
child: Container(color: Colors.green, child: Text(‘Goodbye!’))),
]
)
참고 : 이는 Row
크기에 비례하여 자식 을 확장 할 수 없음을 의미합니다. 행은 정확한 자식의 너비를 사용 Expanded
하거나 또는 을 사용할 때 완전히 무시합니다 Flexible
.
flex
요소를 고려 하여 사용 가능한 모든 공간을 차지합니다 . 자세한 정보 는Expanded
위젯 문서를 참조하십시오 .