2012-07-15 6 views
8

私はViewPagerを使って異なるフラグメント間をスクロールしています。 2つの異なるメニューリソースを使用して、2つのタイプのフラグメントがあります。私はこれらのリソースを必要に応じて切り替えるメニューを無効にしています。それはすべてうまくいきますが、メニューはアニメーションなしで "再描画"されます。サイズを変更せずにアクションバーを短く隠すアクティビティ

個々のMenuItemを混乱させないために、新しいメニューがロードされている間にActionBarを簡単に隠すことができたら、それを表示します。これも期待どおりに動作していますが、ActionBarを切り替えるとアクティビティのサイズが変更されます。

これが起こらないようにする方法や、メニューリソース間の醜い移行を隠す方法はありますか?

答えて

17

私はあなたの問題のメニュー部分をかなり捉えていませんでしたが、ActionBarが表示されたり消えたりしたときにアクティビティのサイズ変更を防ぐ簡単な方法があります。

実際にアクティビティのレイアウトの一部ではなく、アクティビティの上に浮かぶ、オーバーレイモードで自身を描画するようにActionBarに指示できます。あなたのテーマにandroid:windowActionBarOverlayを使用するか、コードのWindow.FEATURE_ACTION_BAR_OVERLAYフラグを使用してください。

この機能をactionBarSize定数とともに使用し、レイアウト内の最初のビューの正しいオフセットを指定します。この方法では、コンテンツは引き続きActionBarの下に表示されますが、ActionBar自体がオーバーレイであるため、非表示にするとアクティビティのサイズが変更されません。

<SomeView 
    ... 
    android:layout_marginTop="?android:attr/actionBarSize" /> 

詳細はthe documentationに記載されています。

+0

パーフェクト、作品は広告されているように:) –

関連する問題