2

問題があります。jfeinstein10 のライブラリを使用して SlideMenu を実装しました。startActivity() と Intents を使用して、さまざまなアイテム (すべての FragmentActivities) を切り替えています。通常のトランジションでは、overridePendingTransition を使用しています。ほぼすべてのアクティビティは、Jake Wharton の TabPageIndicator を使用した ViewPager です。

問題は、アニメーション付きのカスタム レイアウト (Google Now カード スタイル) を使用していることです。1 つのスライド アップと 1 つのスライド ダウンのアニメーション。LinearLayout を拡張し、アニメーションについては、子 (カード) をループして、各子のアニメーションを開始します。カードは、カスタム LinearLayout に追加された RelativeLayouts です。

私の考えは、アプリを起動した後、カードがボタンからスライドアップし(Google Nowのように)、アクティビティを切り替えると、現在のアクティビティからカードがスライドダウンし、空白になったアクティビティが新しいアクティビティにフェード(overridePendingTransition経由)で切り替わることでした。新しいアクティビティのカードが上にスライドします。

スライドアップ用に onGlobalLayoutListener を使用しようとしましたが、これは ViewPager で奇妙な動作をします (最初のタブが上にスライドし、2 番目のタブはそのままで、3 番目のタブも上にスライドします)。アニメーションは、アプリを起動した後、またはアクティビティを切り替えた後にのみ表示されます。

スライド ダウン アニメーションについては、まったくわかりません。カスタム レイアウトで追加のメソッドを作成し、onPause() で開始しようとしましたが、まったく機能しませんでした。

それで、誰かがアイデアを持っているかどうか尋ねたかったのですか?それとも、これはまったく可能ですか?この問題は本当に私を夢中にさせます:D

編集:

http://pastebin.com/8mDefv50 My NowLayout

そして、この https://github.com/jfeinstein10/SlidingMenu/blob/master/example/src/com/slidingmenu/example/fragments/ResponsiveUIActivity.java は基本的に私のベースUIです(content_frameと同じ方法でmenu_frameをチェックしてください)。メニュー自体には、さまざまな FragmentActivities を開始するいくつかのボタンが含まれています。

FragmentActivities は ViewPager のみを管理します。実際のコンテンツと NowLayout は、ViewPager の Fragment で使用されます。

したがって、私の問題は、MenuFragment のアニメーションに適切な方法でアクセスすることです。ボタンのみを保持するMenuFragmentで切り替えが行われるため、ほとんどの場合NPEを取得します。たぶん、私は理解が遅いか、木よりも森が足りないのかもしれません:D

4

1 に答える 1

1

新しいアクティビティのインテントを呼び出す前に実行する必要があるスライドダウンアニメーション-手遅れなので、onPause()ではありません。

したがって、現在のアクティビティから前後に移動する必要がある場合は、スライドダウンアニメーションを実行し、このアニメーションの最後にリスナーを配置してから、必要に応じてfinish()/ startActivity()を実行します。

于 2013-03-13T21:10:12.277 に答える