Я не совсем уверен, что название подходит, потому что я не знаю, правильно ли перекрасить.Тем не менее, я думаю, ясно, что это значит.
Я использую плагин '@ 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, но на экране ничего не происходит.
Как видно из кода, я пытался использовать угловую зону, но ничего не изменилось.
Будут оценены любые идеи, так как я не знаю, где искать ...