Nexus 5(Android 5)でアプリを実行しましたが、下部のソフトナビゲーションバーがListViewの最後のアイテムと重なるという問題が発生しました。私のスタイルとListViewにfitsSystemWindowsを追加しようとしましたが、うまくいきませんでした。
私のレイアウトのXML:
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="vertical"
Android:background="@color/sf4l"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent">
<ListView Android:id="@id/Android:list"
Android:layout_width="match_parent"
Android:layout_height="fill_parent"
Android:layout_weight="1"
Android:background="@color/sf4l" />
</LinearLayout>
これをthemes.xmlのvalues-v21dirに追加します。
<item name="Android:windowDrawsSystemBarBackgrounds">false</item>
例(アクションバーにAppCompatを使用しています):
<style name="Theme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="homeAsUpIndicator">@drawable/new_indicator</item>
<item name="Android:homeAsUpIndicator">@drawable/new_indicator</item>
<item name="actionModeBackground">@Android:color/black</item>
<item name="Android:windowDrawsSystemBarBackgrounds">false</item>
</style>
私はこの投稿で受け入れられた答えを試しましたが、多くの人と同じようにうまくいきませんでした。
しかし、私にとっては次の労働者。
<item name="Android:windowTranslucentNavigation">false</item>
Styles-21.xmlに配置しました
ソフトナビゲーションバーの背景が無地になり、コンポーネントが正しくレンダリングされるようになりました。
これは、listViewの高さが全画面の高さと同じですが、アクションバーがレイアウトを数ピクセル低く押して、ナビゲーションボタンによるレイアウトのオーバーラップを引き起こすためです。
これは、アクションバーの下にフルスクリーンのフラグメントコンテナがある場合にも発生します。
これを修正するには、画面とアクションバーの高さを測定してから、親ビューの高さをその差に設定します。例:
@Override
public void onWindowFocusChanged (boolean hasFocus) {
LinearLayout lMain = (LinearLayout) findViewById(R.id.lMain);
lMain.getLayoutParams().height = lMain.getHeight() - getNavigationBarHeight();
}
非常に簡単な解決策。 ConstraintLayoutを使用するだけです。 上面図の下端を底面図の上端に合わせます。
サンプルを以下に示します:-
xml:-
<Android.support.constraint.ConstraintLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto"
xmlns:tools="http://schemas.Android.com/tools"
Android:id="@+id/container"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
tools:context=".MainActivity">
<ListView
Android:id="@+id/list_item"
Android:layout_width="0dp"
Android:layout_height="0dp"
Android:divider="@color/black"
Android:dividerHeight="2dp"
app:layout_constraintBottom_toTopOf="@+id/navigation"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="1.0"
app:layout_constraintHorizontal_bias="1.0"></ListView>
<Android.support.design.widget.BottomNavigationView
Android:id="@+id/navigation"
Android:layout_width="0dp"
Android:layout_height="wrap_content"
Android:layout_marginEnd="0dp"
Android:layout_marginStart="0dp"
Android:background="?android:attr/windowBackground"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:menu="@menu/navigation" />
</Android.support.constraint.ConstraintLayout>
出力設計:-