1

私のアプリケーションはActionBarSherlockを使用して、アクションバーを表示および非表示にします。

Android 4.1以降では、アクションバーが上にスライドし、非表示(およびショーでは反対)で画面(必要なアニメーション)から出ますが、Android 4.0以下では、効果は不透明度がフェードアウトします。

スライドを使用して、Android 4.1と同じ効果を得る最良の方法は何ですか?

更新:
hide()の実装に行き、Sherlockメソッドを調べました。このメソッドmContentViewでは、nullかどうかを確認するためにチェックされます。

mContentViewに設定されていない場合にのみ設定windowActionBarOverlayされtrueます:

if ((features & (1 << Window.FEATURE_ACTION_BAR_OVERLAY)) == 0) {
        mContentView = (NineFrameLayout)decor.findViewById(android.R.id.content);
    }

実際、ActionBarOverlayオプションを削除すると、すべてのバージョンで同じ効果を使用してアクションバーを表示および非表示にしますが、これをtrueにする必要があります。

4

1 に答える 1

1

まず第一に、actionbarsherlock を使用する場合と使用しない場合の実装は、このユース ケースで違いはありません。4.0 と 4.1 を使用しているため。アニメーションは、ActionBarSherlock ではなく、SDK によって提供されるアニメーションに依存します。

現在、4.0 と 4.1 の 2 つのアニメーションがあります。同じアニメーションを得るために必要な手順は次のとおりです。

  • アニメーションが呼び出される場所を調べる
  • 4.1 のアニメーションを見つけて、プロジェクトにインポートします
  • アクションバーが表示/非表示になったときに呼び出されるアニメーションを設定します
  • そのアニメーションは 4.0 と 4.1+ で呼び出されます

3.0 より前のデバイスではどうなるかわかりませんが、

これが役に立てば幸いです。それ以外の場合は以下にコメントしてください

于 2013-02-12T15:01:08.460 に答える