19

私はActionBarSherlockを使用しており、フルスクリーン画像のActionBarを非表示/表示しようとしています。

getSupportActionBar.hide();

getSupportActionBar.show();

しかし、それは本当にびくびくして厄介です。スムーズにする方法や、平行移動/不透明度のアニメーションを適用する方法はありますか?

ABSソースをさらに詳しく調べて、その動作を観察すると、少なくとも最小限のアニメーションが定義されているようです。標準のActionBarについても同じことは言えません。

完全を期すために、ImageView.clickから呼び出す関連コードを次に示します。

if( shouldRender )
{
  . . .

  getSupportActionBar().hide();

  getWindow().addFlags( WindowManager.LayoutParams.FLAG_FULLSCREEN );
}
else
{
  . . .

  getSupportActionBar().show();

  getWindow().clearFlags( WindowManager.LayoutParams.FLAG_FULLSCREEN );
}

フラグの設定/クリアもジャンプを引き起こすことは注目に値しますが、それほど目立たないので、もしあったとしても、後でそれに取り組むつもりでした。

編集: これは(ABSの作成者による)ネイティブのActionBarでは不可能であると述べているようです。彼のアニメーションを定義する2つのXMLファイルを編集するだけでよいと思いますが、それではプラットフォームに完全に浸透することはできません。

4

1 に答える 1

17

オーバーレイアクションバーを使用します

 requestWindowFeature(com.actionbarsherlock.view.Window.FEATURE_ACTION_BAR_OVERL‌​AY);

show()/hide()が呼び出されたときにアニメーションは表示されません。

于 2012-06-29T21:53:47.743 に答える