Angular Материал Авторазмер SideNav не работает - PullRequest
0 голосов
/ 03 февраля 2020

Я использовал Angular Материал для создания sidenav, который может скрывать текст навигации при нажатии на меню. Я следую за https://material.angular.io/components/sidenav/overview, используя autosize на mat-sidenav-container

Но sidenav по-прежнему перекрывает часть mat-sidenav-content, и он не изменяет размер контента автоматически

Я использую "@ angular / material": "^ 8.0.2"

enter image description here n

html

<mat-sidenav-container class="example-container" autosize>
  <mat-sidenav #sidenav class="example-sidenav" mode="side" opened="true">

    <mat-nav-list>
      <mat-list-item>
        <button mat-icon-button (click)="isExpanded = !isExpanded">
          <mat-icon *ngIf="!isExpanded">chevron_right</mat-icon>
          <mat-icon *ngIf="isExpanded">chevron_left</mat-icon>
        </button>
      </mat-list-item>
      <mat-list-item>
       <mat-icon mat-list-icon>home</mat-icon>
         <p matLine *ngIf="isExpanded">Home</p>
      </mat-list-item>
    </mat-nav-list>
  </mat-sidenav>
  <mat-sidenav-content>

    Main content 

</mat-sidenav-content>

</mat-sidenav-container>

ts file

import {Component} from '@angular/core';
import { MatSidenav } from '@angular/material/sidenav';

@Component({
  selector: 'sidenav-autosize-example',
  templateUrl: 'sidenav-autosize-example.html',
  styleUrls: ['sidenav-autosize-example.css'],
})
export class SidenavAutosizeExample {
  isExpanded = false;
}

css

.example-container {
  width: 100%;
  height: 300px;
  border: 1px solid rgba(0, 0, 0, 0.5);
}

.example-sidenav-content {
  padding: 10px;
  height: 100%;
}

1 Ответ

0 голосов
/ 03 февраля 2020
  • Нет необходимости использовать autoSize.
  • Добавить атрибут [style.left]="sidenav.opened ? '.25%' : '0'" в mat-sidenav-content.
  • Нет необходимости использовать атрибут opened в mat-sidenav.
  • Использовать атрибут [fixedInViewport]="false" с mat-sidenav.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...