0

私は長い間Flex内でモバイルアプリを開発してきましたが、この問題は本当に厄介です。分割ビューナビゲーションで使用したいアプリケーションがあります。そのため、アプリが横向きの場合、メニューは分割画面の左側に表示され、縦向きの場合、メニューは上部にボタンとして表示されます。

これを達成する方法について知っているので、私は正確な手順を実行しました。以下は、デフォルトのパッケージファイルにあるものです。

<s:states>
        <s:State name="portrait"/>
        <s:State name="landscape"/>
    </s:states> 

    <s:SplitViewNavigator id="svn" width="100%" height="100%" autoHideFirstViewNavigator="true">
        <s:ViewNavigator id="leftNav" width="310" height="100%" firstView="views.Menu"/>
        <s:ViewNavigator id="rightNav" width="100%" height="100%" firstView="views.Home">
            <s:actionContent.portrait>
            <s:Button id="NavButton" label="Menu" fontSize="15" click="svn.showFirstViewNavigatorInPopUp(NavButton)"/>
            </s:actionContent.portrait>         
        </s:ViewNavigator>
    </s:SplitViewNavigator>

ただし、このコードを使用し、アプリが横向きの場合でも、上部の右側のペインにメニューボタンが表示されます。横向きのときにこのボタンをクリックすると、右側のセクションが画面全体に拡大して表示されます。メニューはポップアウトボックスに入ります。

私がここで見逃しているものや、運がなくてすっごくイライラする約20の異なるアプローチを試したので、設定しなければならないものはありますか?前もって感謝します :-)

4

1 に答える 1

0

これは古い質問だと思いますが、多くの人に起こることです!

したがって、ソリューションは実際には非常に単純です。ボタンに追加visible.landscape="false"するだけで完了です。最終的には次のようなボタン タグになります。

<s:Button visible.landscape="false" id="NavButton" label="Menu" fontSize="15" click="svn.showFirstViewNavigatorInPopUp(NavButton)"/>

デバイスの回転が変更されると状態が変化するというコメントが見られますが、何らかの理由でこれが機能しない場合は、アプリケーション (またはビュー) にサイズ変更イベント ハンドラーを追加してから、次のようなことを行うことができます。

protected function resizeHandler(event:ResizeEvent):void
{
   if( width > height ){
      currentState = "landscape";
   }else{
      currentState = "portrait";
   }
}

繰り返しになりますが、おそらくこれをすでに解決している可能性がありますが、他の人の助けになるかもしれません!

于 2013-03-10T14:49:08.540 に答える