私の問題は上記の画像に似ています
Nexus端末でこの問題が発生します。 Bottom Navigation Barの高さを取得して、下からマージンを追加しました。しかし、私のアプリケーションは、タブレットの下部から余分なマージンを示しています。
スタイルファイルの内容を変更したくありません。
Code:-
<Android.support.design.widget.CoordinatorLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto"
Android:id="@+id/main_coordinator_layout"
Android:layout_width="match_parent"
Android:layout_height="match_parent">
<Android.support.design.widget.AppBarLayout
Android:id="@+id/clubhouse_bar"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:fitsSystemWindows="true"
Android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<Android.support.v7.widget.Toolbar
xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto"
Android:id="@+id/clubhouse_toolbar_main"
Android:layout_width="match_parent"
Android:layout_height="?attr/actionBarSize"
Android:minHeight="?attr/actionBarSize"
Android:background="@Android:color/holo_red_dark"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:layout_scrollFlags="scroll|enterAlways">
<TextView
Android:id="@+id/toolbar_title"
Android:layout_width="wrap_content"
Android:layout_height="match_parent"
Android:textAppearance="@Android:style/TextAppearance.Holo.Medium.Inverse"
Android:gravity="center"
Android:singleLine="true"
Android:maxLines="1"
Android:paddingLeft="2dp"
Android:ellipsize="end"
Android:textColor="@color/white"
/>
</Android.support.v7.widget.Toolbar>
</Android.support.design.widget.AppBarLayout>
<ImageView
Android:id="@+id/iv_view"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:src="@drawable/ic_ab_arrowup"/>
<FrameLayout
Android:id="@+id/drop_down_overlay_container"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:background="@Android:color/white"
Android:layout_marginTop="60dp"
Android:fitsSystemWindows="true"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</Android.support.design.widget.CoordinatorLayout>
このフレームレイアウトのdrop_down_overlay_containerは、フラグメントを表示している場所です。
問題は次のとおりです。カードビューの親の高さの一致は、実際には画面上部のバーの高さです。これを非常に簡単に修正するには、以下を追加します。
Android:layout_marginBottom="?attr/actionBarSize"
このような:
<RelativeLayout 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:layout_width="match_parent"
Android:layout_height="match_parent"
Android:layout_marginBottom="?attr/actionBarSize"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="com.example.jburg.empty.Main22Activity"
tools:showIn="@layout/activity_main22"
Android:background="@color/colorAccent"/>
これは私のエミュレーターのネクサス10タブレットで動作します。これがあなたに役立つかどうかを知らせてください。
これを試しましたか
下部のソフトNavigationBarが私のListViewと重なります
唯一の問題は、スタイルファイルを変更したくないと述べ(理由は述べていません!)、そのユーザーがスタイルファイルを変更することで結果を達成することです。
recyclerViewの下のナビゲーションバーの高さと同じ下のパディングを追加するだけです。
私も同様の問題に直面していました。私はすべての可能な解決策を試してみましたが、うまくいきません。次に、次のように自分の親にView要素を追加して自分で試しました。
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.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:layout_width="match_parent"
Android:layout_height="match_parent"
tools:context=".FilterLocationActivity">
<include layout="@layout/app_bar" />
<ExpandableListView
Android:id="@+id/lvLocations"
Android:layout_width="match_parent"
Android:layout_height="0dp"
Android:layout_weight="1"
Android:divider="@null"
app:layout_constraintBottom_toBottomOf="@+id/tester"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/toolbar" />
<View
Android:id="@+id/tester"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
ただの提案:
visibility = "invisible"( "gone"ではない)のダミーボタンを追加できます。ボタンのデフォルトの高さは、ナビゲーションバーの高さとほぼ同じです。したがって、ナビゲーションバーがボタンの上にある場合でも、重要なデータは完全に表示されます(ナビゲーションバーの上)。また、表示されるボタンについて考える必要はありません。
あなたのケースでは、フラグメントにスクロール可能なビューがあると仮定しています。そのため、スクロール可能なビュー(listview、recyclerview ...)の下のフラグメントxml内、またはフラグメントxmlの下部にボタンを配置する必要があります。
この行を追加してみてくださいAndroid:fitsSystemWindows="true"
をCoordinatorLayoutに追加します。
このコードをimageviewに追加してみてください。
Android:layout_below="@+id/clubhouse_toolbar_main"