cdk覆盖默认位置
cdk overlay default possition
我正在使用 cdk overlay flexibleConnectedTo(origin)。
所以开是靠freespace,如果底部space不够就开在上面。
但默认情况下,如果顶部和底部的space足够,则在顶部打开。
是否可以更改默认位置以在底部打开它?
private getOverlayPosition(origin): PositionStrategy {
return this.overlay.position()
.flexibleConnectedTo(origin)
.withPositions(this.getPositions())
.withFlexibleDimensions(false)
.withPush(false)
}
private getPositions(): ConnectionPositionPair[] {
return [
{
originX: 'center',
originY: 'top',
overlayX: 'center',
overlayY: 'bottom'
},
{
originX: 'center',
originY: 'bottom',
overlayX: 'center',
overlayY: 'top',
},
]
}
只需交换 ConnectionPositionPair[]
数组中的那些元素,因为它们的顺序很重要。如果 cdk 可以根据第一个位置定位您的元素,它就不会去查看第二个位置。
private getPositions(): ConnectionPositionPair[] {
return [
{
originX: 'center',
originY: 'bottom',
overlayX: 'center',
overlayY: 'top'
},
{
originX: 'center',
originY: 'top',
overlayX: 'center',
overlayY: 'bottom',
},
]
}
引用link
positions: ConnectionPositionPair[] //Ordered list of preferred positions, from most to least desirable.
我正在使用 cdk overlay flexibleConnectedTo(origin)。 所以开是靠freespace,如果底部space不够就开在上面。 但默认情况下,如果顶部和底部的space足够,则在顶部打开。 是否可以更改默认位置以在底部打开它?
private getOverlayPosition(origin): PositionStrategy {
return this.overlay.position()
.flexibleConnectedTo(origin)
.withPositions(this.getPositions())
.withFlexibleDimensions(false)
.withPush(false)
}
private getPositions(): ConnectionPositionPair[] {
return [
{
originX: 'center',
originY: 'top',
overlayX: 'center',
overlayY: 'bottom'
},
{
originX: 'center',
originY: 'bottom',
overlayX: 'center',
overlayY: 'top',
},
]
}
只需交换 ConnectionPositionPair[]
数组中的那些元素,因为它们的顺序很重要。如果 cdk 可以根据第一个位置定位您的元素,它就不会去查看第二个位置。
private getPositions(): ConnectionPositionPair[] {
return [
{
originX: 'center',
originY: 'bottom',
overlayX: 'center',
overlayY: 'top'
},
{
originX: 'center',
originY: 'top',
overlayX: 'center',
overlayY: 'bottom',
},
]
}
引用link
positions: ConnectionPositionPair[] //Ordered list of preferred positions, from most to least desirable.