1

画面で利用可能な最大のスペースを占めるように、コールアウトを最大化する方法は?

コールアウトにViewNavigatorを表示しようとしていますが、機能しているのに、表示Viewが狭すぎます。

ここに画像の説明を入力してください

同じプログラムで私は別のものを持っていますCallout、そしてそれは十分に広いです:

ここに画像の説明を入力してください

それらの唯一の2つの違いは、後者がCalloutButtonに接続されており、後者が私が設定したカスタムScoreコンポーネントを保持していることです。

    override protected function measure():void {
        super.measure();
        measuredWidth = Capabilities.screenResolutionX;
        measuredHeight = Capabilities.screenResolutionY;
    }

私はCallout.asコードを見つめ続けていますが、それをだまして最も利用可能なスペースを占有する方法をまだ見つけることができません。

私のカスタムmxmlコンポーネントは非常に単純です。

PlayerInfo.mxml:

<?xml version="1.0" encoding="utf-8"?>
<s:Callout 
    xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark"
    contentBackgroundAppearance="none">

    <fx:Script>
        <![CDATA[
            [Bindable]
            public var userid:String;
        ]]>
    </fx:Script>

    <s:ViewNavigator 
        firstView="views.Profile"
        firstViewData="{userid}">
        <s:navigationContent>
            <s:Button label="Close" click="close()" />
        </s:navigationContent>
    </s:ViewNavigator>

</s:Callout>        
4

1 に答える 1

1

Callout は Container を拡張するため、幅と高さを 100% に設定しても問題はありません。
また、Callout コードには次のメソッドがあります。

/**
 *  @private
 *  Force a new measurement when callout should use it's screen-constrained
 *  max size.
 */
private function invalidateMaxSize():void
{
    // calloutMaxWidth and calloutMaxHeight don't invalidate 
    // explicitMaxWidth or explicitMaxHeight. If callout's max size changes
    // and explicit max sizes aren't set, then invalidate size here so that
    // callout's max size is applied.
    if (!canSkipMeasurement() && !isMaxSizeSet)
        skin.invalidateSize();
}

したがって、'explicitMaxWidth' および 'explicitMaxHeight' プロパティを設定してみてください。

于 2012-12-05T17:43:19.780 に答える