Angular 7 Material 扩展面板闪烁

Angular 7 Material Expansion Panel flicker

我已升级到 Angular 7.1.0,其中:

"@angular/animations": "^7.1.0",
"@angular/cdk": "^7.1.0",
"@angular/common": "^7.1.0",
"@angular/compiler": "^7.1.0",
"@angular/core": "^7.1.0",
"@angular/forms": "^7.1.0",
"@angular/http": "^7.1.0",
"@angular/material": "^7.1.0",
"@angular/platform-browser": "^7.1.0",
"@angular/platform-browser-dynamic": "^7.1.0",
"@angular/router": "^7.1.0"

我正在使用 Angular Material 扩展面板,最初通过 [expanded]="false" 扩展为 false。

扩展面板的主体在几毫秒内可见。从扩展到不扩展,这看起来像是一个短暂的跳跃。 有人遇到同样的问题吗?

<mat-expansion-panel-header>

  <mat-panel-title>
    <div class="NumberAccordionContentWrapper__centered">
      <h2 [class.NumberAccordion__notExpanded]="!isExpanded">{{ headline }}</h2>
    </div>
  </mat-panel-title>

</mat-expansion-panel-header>

<div class="NumberAccordionContentWrapper__centered">

  <ng-template tbHost></ng-template>

</div>

这是一个错误。并且有一个 open issue 对应它。

这是在包含扩展面板并设置动画时引起的。

Click to see reproduce demo

迄今为止在此线程上发布的最佳解决方法:

Click to see the workaround

这家伙发布了一个关于 css 的临时解决方案,似乎有效: https://github.com/angular/components/issues/11765#issuecomment-447991348

::ng-deep .ng-animating div mat-accordion mat-expansion-panel mat-expansion-panel-header {
    height: 48px;
  }
::ng-deep .ng-animating div mat-accordion mat-expansion-panel div.mat-expansion-panel-content {
    height: 0px;
    visibility: hidden;
}

我离开了 ::ng-deep 并将其添加到我的全局样式中。