【Android Developers Training】9.レイアウトを覆うアクションBar

8214 ワード

この文章はGoogleの公式Android Developers Trainingの文書から訳して、翻訳者の技術は普通で、Androidが好きなため翻訳の考えを生んで、全く個人の興味の趣味です.
リンク:http://developer.android.com/training/basics/actionbar/overlaying.html
デフォルトでは、Acton Barはあなたのactivityウィンドウの上部に表示されます.activityレイアウトの残りの空間を少し減らすことができます.ユーザのUIインタラクション中に、アクションBarを隠して表示することができることを望むなら、そのhide() ショー() 。 , activityを呼び出しても良いです.
アクションBarが隠れて表示されている間にレイアウトのサイズを再調整することを避けるために、アクションBarの上書きモードを使用することができます.上書きモードでは、スクリーン上のすべての空間を使って、まるでaction barがいないかのようにシステムがaction barをあなたのレイアウトに描画します.これはレイアウトの上部の一部を覆い隠すことになりますが、今のところaction barを隠したり表示する場合、システムはレイアウトのサイズを再調整する必要がなく、画面の遷移が滑らかで自然になります.
Tip:
もしあなたのレイアウトがあなたのアクションバーの後に部分的に見えることを望むなら、図1に示すように、action barのために半透明のカスタム背景を作成することができます.カスタムアクションBarのスタイルについては、Styling theアクションBarを読むことができます.(ブログリンク:http://www.cnblogs.com/jdneo/p/3444484.html)
図1.ギャラリーのレイアウト上にカバーされたアクションBar
 
一)上書きモードを有効にする
アクションバーのカバーモードを有効にするためには、存在したaction barのテーマを引き継ぐカスタムテーマを作成し、「android:window Action BarOverlay」という属性フィールドを「true」に設定する必要があります.
Android 3.0以上の場合
もしあなたのminSdk Version 11 , The me.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 Library」を使用するなら、あなたのテーマはThe me.AppComppatテーマ(またはその派生テーマ)をお父さんのテーマとして使用すべきです.
<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>
このテーマには「windowAction BarOverlay」というスタイルの二つの定義が含まれています.一つは「android:」という接頭辞がありますが、もう一つはありません.「android:」プレフィックスのバージョンはこのスタイルを含むAndroidプラットフォームに適用されますが、ないバージョンは古いバージョンに適用されます.スタイルは「Support Library」から取得します.
 
二)レイアウトの上端を指定します.
アクションバーがオーバーレイモードになると、あなたの一部が表示されるべきレイアウトを覆い隠すかもしれません.これらの要素が常にaction barの下にあることを保証するために、上部Viewの外側の距離または内側のマージンを追加することにより、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>
もしあなたが使っているのが「Support Library」なら、「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>
この例では、「?atr/actionBarSize」というプレフィックスなしの値は、Android 3.0とより高いバージョンを含むすべてのバージョンに適用される.