Angular 7 адаптивный макет с использованием Material Grid

Я поймаю это исключение, когда Java из кучи. Если я попытаюсь поместить в ОЗУ множество элементов данных - сначала я поймаю «Сбой связи» и следующий «OutOfMemoryError».

Я зарегистрировал его, и я уменьшаю потребление памяти (удаляю данные 1/2) и все в порядке.

0
задан Benjamin Barbé 16 January 2019 в 13:48
поделиться

2 ответа

В макетах сетки действительно имеют значение только соотношения (а не фактическое количество столбцов). В вашем случае соотношение между размерами плиток не меняется - первая плитка всегда в два раза шире, чем вторая и третья. Таким образом, вы можете математически уменьшить ваш мобильный макет до:

A- 6 (6/6)
B- 3 (3/6)
C- 3 (3/6)

Теперь значения тайла colspan одинаковы для обоих макетов, единственная разница - количество столбцов. Это упрощает реализацию адаптивного дизайна, поскольку вам нужно всего лишь изменить значение cols между 12 и 6.

Привязать входное значение cols к выражению:

<mat-grid-list [cols]="isMobile ? 6 : 12">...
[ 1111] Используйте модуль компоновки CDK для обнаружения изменений устройства:

import {BreakpointObserver, Breakpoints} from '@angular/cdk/layout';
...
class MyComponent {

  public isMobile: boolean = false;

  constructor(breakpointObserver: BreakpointObserver) {
    breakpointObserver.observe([
      Breakpoints.Handset
    ]).subscribe(result => {
      this.isMobile = result.matches;
    });
  }

  ...
}

Вы также можете настроить точку останова в зависимости от размера экрана:

breakpointObserver.observe([
  '(max-width: 599px)'
]).subscribe(result => {
  this.isMobile = result.matches;
});
0
ответ дан G. Tranter 16 January 2019 в 13:48
поделиться

Чтобы настроить точку останова:

breakpointObserver.observe(['(min-width: 500px)'])
0
ответ дан Benjamin Barbé 16 January 2019 в 13:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: