在 Flex Mobile 中,我在操作栏中有几个按钮。在屏幕非常小的设备(例如 HTC Wildfire)上,并非所有按钮都可以显示。有没有办法告诉 Flex 在元素不合适时隐藏它?我知道可以通过使用状态并测试屏幕的宽度,但我希望有另一种方法..
user355318
问问题
146 次
2 回答
1
您可以检查ApplicationDPI值;并在更高分辨率上隐藏明确的内容。大多数平板电脑提供 160dpi;而大多数手机提供240dpi。iPhone 4 提供 320dpi 屏幕。我不确定 iPad Retina Display 屏幕。
于 2012-04-13T04:39:08.103 回答
1
这是一个非常简单的Spark 布局类,它水平布置对象,丢弃任何不适合的项目。
package
{
import mx.core.ILayoutElement;
import spark.layouts.supportClasses.LayoutBase;
public class DroppableHorizontalLayout extends LayoutBase
{
private static const PADDING:Number = 5;
public function DroppableHorizontalLayout()
{
super();
}
override public function updateDisplayList(width:Number, height:Number):void
{
// super.updateDisplayList(width,height); // super method doesn't do anything
var currentXCoordinate:Number = 0;
var numKids:int = target.numChildren;
for (var i:int=0; i < numKids; i++)
{
var currentItem:ILayoutElement = target.getElementAt(i);
var itemWidth:Number = currentItem.getPreferredBoundsWidth();
if (currentXCoordinate + itemWidth < width)
{
currentItem.setLayoutBoundsSize(itemWidth, currentItem.getPreferredBoundsHeight());
currentItem.setLayoutBoundsPosition(currentXCoordinate, 0); // or whatever the Y coordinate should be
currentXCoordinate = currentXCoordinate + itemWidth + PADDING;
}
else
{
break; // no reason to keep iterating, nothing else will fit...
}
}
}
}
}
编写具有典型 Flex 布局类的所有功能的布局并非易事。但是你当然可以像上面那样做简单的事情,迭代子对象,设置它们的大小/位置,在这种情况下,不用费心渲染不适合的东西。
于 2012-04-13T03:44:51.837 回答