2017-12-13 2 views
1

私はFrameLayoutコンテナにプログラムで断片を削除しています。アンドロイド:フラグメントの場合はfitsSystemWindows = "true"

アクティビティのためにandroid:fitsSystemWindows="true"を保持すると、期待どおりに機能します。しかし、私がすべてのフラグメントのショーでのアクティビティにandroid:fitsSystemWindows="true"を適用した場合は、代わりにandroid:fitsSystemWindows="true"をフラグメントレイアウト内に適用するか、断片的にプログラムで適用したいと考えています。

誰でもこれに直面しましたか?

私のレイアウトは以下のようになります。

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    > 
    <FrameLayout 
     android:id="@+id/container" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1"> 

    </FrameLayout> 

</LinearLayout> 

答えて

0

私はこれを正しく読めば、あなたは、単一の活動は様々な断片にフルスクリーン(fitsSystemWindows="false")または可視およびウィンドウの内容(fitsSystemWindows="true")を不明瞭ない状態/アクション/ NAVバー付きの標準レイアウトのいずれかを示したいと思います。

FrameLayout個のコンテナを1つのRelativeLayoutの中に別途フルスクリーンで設定すると、これを行うことができます。

完全または標準の画面レイアウトであるかどうかに応じてフラグメントを読み込むコンテナを選択できますが、フラグメントを削除したり、他のフレームレイアウトを非表示にしたりすることを忘れないでください。

アクションバーとステータス/ナビゲーションバーを表示/非表示/オーバーレイするには、システムのUI表示と調整する必要がありますが、それは問題の範囲にはありません。それについては、Managing the System UIのドキュメントを参照してください。ここで

私が何を意味するかの例です:

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

    <FrameLayout 
     android:id="@+id/containerFullScreen" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:fitsSystemWindows="false" /> 

    <FrameLayout 
     android:id="@+id/containerNormalScreen" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:fitsSystemWindows="true" /> 

</RelativeLayout> 

最初のフレームのレイアウトが画面いっぱいになると第二は、ステータス/アクション/ NAVバーのためのインセットを尊重します。

+0

私はこのバグを無駄にしました。 私のアプリケーションでは、 "Back"のような自分のナビゲーションボタンを持っています – Naresh

+0

私はこのアンドロイドを作成します:fitsSystemWindows = "false"をメインルートレイアウトに追加し、android:fitsSystemWindows = "true" – Naresh

+0

私のアプリケーションでは、 "戻る"、 "次へ"のような独自のナビゲーションボタンがありますので、ユーザーが編集テキストをクリックすると、矢印が表示され、キーボードを閉じることができます。 android:fitsSystemWindows = true "の場合、ナビゲーションバーの下に矢印が表示されます アンドロイド:fitsSystemWindows =" false "の場合、ナビゲーションバーの下矢印がデバイスの矢印ボタンと重なって表示されます。 – Naresh

関連する問題