8

アクションバーが非表示になっているアクティビティがあり、ボタンをクリックしたときに表示したいのですが、レイアウトアクティビティを下にスクロールしたくない場合は、バーを重ねる必要があります。どうすればそのようなことができますか?

バーを非表示にするには

actionbar.hide();
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE);

そしてそれを見えるようにするために:

actionbar.show();
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);

私のレイアウトは

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >

    <MyPager
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/pager"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    <MyPager>

</RelativeLayout>

前もって感謝します。

4

3 に答える 3

31

ActionBarおそらくオーバーレイモードを探しています。の前にActivity呼び出すことにより、シングルに対して有効にします。または、テーマで。に設定します。requestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY);setContentView()android:windowActionBarOverlaytrue

于 2013-01-11T21:15:47.380 に答える
0

アクティビティの親レイアウトの RelativeLayout を作成し、アクション バーをレイアウトの上部に配置します。これにより、以下の例に示すように、メイン アクティビティ コンテンツの上にオーバーレイされます。

RelativeLayout を使用すると、要素を配置できるだけでなく、上から下への順序でビュー要素の z-index の順序を決定することもできます。つまり、どのビューが他のビューの前/後ろにあるかを決定できます。

<RelativeLayout
    android:id="@+id/parent_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <LinearLayout
        android:id="@+id/action_bar_layout"
        android:layout_width="match_parent"
        android:layout_height="100dp">

    </LinearLayout>
    <LinearLayout
        android:id="@+id/main_activity_content_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    </LinearLayout>
</RelativeLayout>

action_bar_layout を非表示/表示できるようになりましたが、main_activity_content_layout のアクティビティ コンテンツの位置には影響しません (レイアウトの setVisibility() メソッドを使用)。

于 2013-01-11T15:49:18.937 に答える
0

Google Playストアのような効果については、試してみてください...

于 2015-01-06T18:31:26.313 に答える