Nativescript Responsive @ proplugin / nativescript-platform-css не вызывает перерисовку - PullRequest
0 голосов
/ 22 сентября 2019

Я не совсем уверен, что название подходит, потому что я не знаю, правильно ли перекрасить.Тем не менее, я думаю, ясно, что это значит.

Я использую плагин '@ proplugin / nativescript-platform-css' и следую за Алвесом Тиаго отлично blog .

КакЯ использую угловой Мне нужен плагин в main.tns.ts

import { platformNativeScriptDynamic } from 'nativescript-angular/platform';

import { AppModule } from '@src/app/app.module';

require( '@proplugins/nativescript-platform-css' );

platformNativeScriptDynamic().bootstrapModule(AppModule);

Я динамически меняю строки и столбцы в зависимости от ширины устройства:

HTML

<GridLayout (layoutChanged)="updateLayout($event)" horizontalAlignment="center" verticalAlignment="center" class="wrap-login100"
[class.phone]="gridLayout.isPhone" [class.tablet]="!gridLayout.isPhone"
row="1" 
[rows]="gridLayout.rows"
[columns]="gridLayout.columns">
  <StackLayout marginBottom="50" [col]="gridLayout.image.col" [row]="gridLayout.image.row" verticalAlignment="center" class="login100-pic">

ОБНОВЛЕНИЕ МЕРОПРИЯТИЯ

updateLayout(value) {
  this.zone.run(() => {
  this.gridLayout = this.platformService.updateLayout('login');
  });
 }

МЕТОД ОБНОВЛЕНИЯ

updateLayout(route) {
let width;
width = screen.mainScreen.widthDIPs;

  let gridLayout;
if (width < 1000) {
  gridLayout = {
    isPhone: true,
    columns: '*',
    rows: '*,2*',
    image: {
      row: 0,
      col: 0
    },
    form: {
      row: 1,
      col: 0
    }
  };
} else {
  gridLayout =  {
    isPhone: false,
  columns: '*,2*',
  rows: '*',
  image: {
    row: 0,
    col: 0
  },
  form: {
    row: 0,
    col: 1
  }
};
}
return gridLayout;
}

Когда приложение запустилось, явызвал метод updateLayout, и pp правильно нарисует макет, либо планшета, либо телефона.Когда я изменяю ориентацию, также запускается метод updateLayout, возвращающий соответствующий объект gridLayout, но на экране ничего не происходит.

Как видно из кода, я пытался использовать угловую зону, но ничего не изменилось.

Будут оценены любые идеи, так как я не знаю, где искать ...

...