問題タブ [windowinsets]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
22626 参照

java - WindowInsets とは何ですか?

Android OS について学習しようとしていますが、Google I/O 2014 アプリを読んでいるときにWindowInsets. 誰かがそれらが何であるかを説明できれば、それは大きな助けになるでしょう. ありがとうございました。

0 投票する
1 に答える
2384 参照

android - fitsSystemWindows on Fragment, Activity and DrawerLayout combination

Problem

The activity layout has a DrawerLayout with a FrameLayout as content to Fragment and a LinearLayout to be opened and closed by drawer. The fragment used on content has a FrameLayout with fitsSystemWindows flag and a Toolbar.

If I insert the fragment at onCreate() all occurs as expected, the FrameLayout starts on position 0 and the Toolbar starts below the statusbar. But outside the onCreate() the same code fails, the fitsSystemWindows not works with FrameLayout.

An important point, I need the Toolbar and fitsSystemWindows flag on Fragment and not on Activity.

How to get the same behavior seen at onCreate() moment?

Code

Main Activity

#xA;

Main Layout

#xA;

Fragment

#xA;

Fragment layout:

#xA;

Example

The LinearLayout to be opened is in red. The FrameLayout with the fitsSystemWindows flag is in green and the toolbar is in blue, the cyan view is working all the time, it need start at y position 0. The expected is Green and blue like the first time, but in the second time the blue is the unique viewed.

enter image description here

0 投票する
1 に答える
481 参照

android - Android のタブ レイアウトでステータス バーが重なっている

タブ レイアウトがステータス バーと重なっています。同じことがいくつかのスレッドで見つかりましたが、解決策として "fitsSystemWindows" を追加しているようで、既に XML レイアウトに設定しています。このようなタブで、完全に機能しているようです。

ここに画像の説明を入力

これは私の XML レイアウトです。

0 投票する
1 に答える
94 参照

android - ナビゲーション バーとステータス バーのないコンテンツ領域を決定する

Android アプリは、ナビゲーション バー、ステータス バー、およびツールバーの背後にコンテンツを表示する全画面表示を使用します。これらのバーの後ろにないコンテンツが欲しいです。これらのバーのない領域を決定する方法は? 私の理解では、一部のバーの位置はデバイスに依存しています。

0 投票する
1 に答える
5408 参照

android - API 21 以降の場合、コンテンツはソフト ナビゲーション バーの後ろに表示されます

Material Design を使用するようにアプリをアップグレードしました - Theme.AppCompat.Light.NoActionBarActionBarの代わりにToolbarなど。

そして、問題があります。APi >= 21 のデバイスでは、下部のコンテンツがソフト NavigationBar (下の図を参照) の下に隠されるようになります。

これを修正する解決策を見つけました:

values-v21/styles.xml

オプションの場合<item name="android:windowDrawsSystemBarBackgrounds">false</item>- 下部のコンテンツは表示されますが、ステータスバーは完全に黒くなります。色をcolorPrimaryDark (私の場合は緑) に変更できません

オプションの場合<item name="android:windowDrawsSystemBarBackgrounds">true</item>- 下部のコンテンツは非表示になり、ステータスバーは予想どおり緑色になります。

ステータスバーに色付け(緑)し、下部のコンテンツを表示したい..おそらく、ツールバーに問題があります。コンテンツを押し下げていますか?

助言がありますか?

<item name="android:windowDrawsSystemBarBackgrounds">true</item>

<item name="android:windowDrawsSystemBarBackgrounds">false</item>

アップデート:

@azizbekian が提案したように、fragmets のコンテナーを CoordinatorLayout(FrameLayout の前) に置き換えて適用しandroid:fitsSystemWindows="true" ました。この場合、下部パネルは表示されますが、下部には表示されません。

画面のレイアウト:

結果は次のとおりです。

更新#2

アクティビティのレイアウト:

アクティビティのルートとして置き換えられLinearLayourます。CoordinatorLayout私が保持しているコンテンツのルート要素としてFrameLayout. に適用android:fitsSystemWindows="true"されCoordinatorLayoutます。このようにして、すべてのコンテンツがわずかに上に移動し、一部がツールバーの下に配置されました (下の画像で確認できます - 上部の要素は + と - の記号が付いた円です。ただし、前の画像では上部にテキストがあります。) 下部の要素について (ボタン パネル) - ナビゲーション バーの下に配置されていますが、わずかに上に移動しています。android:background="@color/red"このパネルの位置がわかりやすいように印をつけました。

どうやら、私たちは正しい道を進んでいるようです。必要なのは - 問題を解決するために - コンテンツがツールバーの下に移動した理由.. ツールバーが上部の UI 要素になる場合、ボタンが表示されます..