我有一些基本的风格,如:
<?php
$youKeysFetchedFromDb = array("12_01", "01_02"); //suppose
foreach($youKeysFetchedFromDb as $value){
echo $hourshow[$value];
}
在"#foo": {
backgroundColor: '#ff0000', // red
}
"#foo[if=Alloy.Globals.isSmallHeight]": {
backgroundColor: '#0000ff', // blue
}
我有以下内容:
alloy.js
这基本上意味着如果屏幕高度小于或等于function pxToDp(px){
return px / (Titanium.Platform.displayCaps.dpi / 160);
}
var screenWidth;
var screenHeight;
if (Ti.Platform.name == "android") {
screenWidth = pxToDp(Ti.Platform.displayCaps.platformWidth);
screenHeight = pxToDp(Ti.Platform.displayCaps.platformHeight);
} else {
screenWidth = Ti.Platform.displayCaps.platformWidth;
screenHidth = Ti.Platform.displayCaps.platformHeight;
}
Alloy.Globals.isSmallHeight= screenHeight <= 545;
,#foo
的背景颜色为蓝色,否则为红色。
这通常可行。但是,有时屏幕的高度可能会在运行时发生变化。例如:
问题在于,不会重新应用样式以考虑新的屏幕宽度和屏幕高度。
例如,假设在纵向位置有一个大小为545dp
的屏幕。 600dp x 300dp
将正确地具有红色的背景颜色。
但是,如果方向发生变化,屏幕尺寸现在为:#foo
,但300dp x 600dp
不会重新检查背景颜色的高度,因此仍然是红色而不是蓝色。< / p>
进入分屏时会出现类似的问题。
因此我的问题是,如何在屏幕尺寸发生变化时重新应用样式?
答案 0 :(得分:1)
查看文档中的dynamic styles
部分
它将为您提供有关如何在运行时创建样式并应用它们的基本概念。您可以在方向更改事件
中执行此操作