AndroidにおけるActionBarのオーバーライドオーバーラップ


作成:Vincent 4 J-校正:
原文:http://developer.android.com/training/basics/actionbar/overlaying.html
ActionBarオーバーライドオーバーラップ
デフォルトでは、action barはactivityウィンドウの上部に表示され、他のレイアウトの有効なスペースが少し減少します.ユーザインタラクション中にaction barを非表示にして表示する場合は、ActionBarのhide()とshow()を呼び出すことで実現できます.ただし、activityは新しい寸法に基づいて計算を再現し、レイアウトを再描画します.
action barの非表示と表示中にレイアウトを調整しないように、action barのオーバーラップモードを有効にします.オーバーラップモードでは、使用可能なすべてのスペースがレイアウトに使用され、action barがレイアウトにオーバーラップします.これにより、レイアウトの上部が遮断されますが、action barが非表示または表示になった場合、システムはレイアウトを調整する必要はなく、シームレスな移行を必要としません.
ヒント:action barの下のレイアウト部分を表示したい場合は、図1に示すように、背景部分が透明なカスタムスタイルのaction barを作成できます.Actionbarの背景を定義する方法については、ActionBarのスタイル化を参照してください.
android中ActionBar的覆盖叠加_第1张图片図1.オーバーラップモードでのgallery action bar
オーバーレイモードを有効にする
Actionbarのオーバーラップモードを有効にするには、既存のaction barトピックに継承され、android:windowActionBarOverlayプロパティの値をtrueに設定するトピックをカスタマイズする必要があります.
Android 3.0以上のみ対応
minSdkValersonが11以上の場合、カスタムトピックはThemeを継承する必要があります.Holoトピック(またはそのサブトピック).例:
<resources>
    <!-- the theme applied to the application or activity -->
    <style name="CustomActionBarTheme" parent="@android:style/Theme.Holo"> <item name="android:windowActionBarOverlay">true</item> </style>
</resources>

Android 2.1以上をサポート
Android 3.0以下で動作するデバイスと互換性のためにSupportライブラリを使用する場合は、カスタムトピックはThemeを継承する必要があります.AppCompatトピック(またはそのサブトピック).例:
<resources>
    <!-- the theme applied to the application or activity -->
    <style name="CustomActionBarTheme" parent="@android:style/Theme.AppCompat"> <item name="android:windowActionBarOverlay">true</item> <!-- Support library compatibility --> <item name="windowActionBarOverlay">true</item> </style>
</resources>

このトピックには、2つの異なるwindowActionBarOverlay仕様定義が含まれていることに注意してください.1つはandroid:接頭辞を持ち、もう1つは持っていません.プレフィックス付きはこの仕様を含むAndroidバージョンに適用され、プレフィックスなしはSupportライブラリから仕様を読み込む古いバージョンに適用されます.
レイアウトの上端を指定
action barがオーバーラップモードを有効にすると、表示されるべきレイアウトが遮断される可能性があります.これらのレイアウトが常にaction barの下部にあることを確認するには、actionBarSizeプロパティを使用して、上部の外側または上部の内側のエッジの高さを指定します.例:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingTop="?android:attr/actionBarSize">
    ...
</RelativeLayout>

ActionbarでSupportライブラリを使用する場合は、android:接頭辞を削除する必要があります.例:
<!-- Support library compatibility -->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingTop="?attr/actionBarSize">
    ...
</RelativeLayout>

この場合、プレフィックスなしの?attr/actionBarSizeは、Android 3.0以降のすべてのバージョンに適しています.
変換元:http://hukai.me/android-training-course-in-chinese/basics/actionbar/overlaying.html