web-dev-qa-db-ja.com

Navbarが最後のListViewアイテムと重なっている(Android)

enter image description here

私の問題は上記の画像に似ています

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は、フラグメントを表示している場所です。

19
sharma_kunal

問題は次のとおりです。カードビューの親の高さの一致は、実際には画面上部のバーの高さです。これを非常に簡単に修正するには、以下を追加します。

    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タブレットで動作します。これがあなたに役立つかどうかを知らせてください。

27
jobbert

これを試しましたか

下部のソフトNavigationBarが私のListViewと重なります

唯一の問題は、スタイルファイルを変更したくないと述べ(理由は述べていません!)、そのユーザーがスタイルファイルを変更することで結果を達成することです。

1

recyclerViewの下のナビゲーションバーの高さと同じ下のパディングを追加するだけです。

0
MohdTausif

私も同様の問題に直面していました。私はすべての可能な解決策を試してみましたが、うまくいきません。次に、次のように自分の親に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>
0
Mohammad Alfaz

ただの提案:
visibility = "invisible"( "gone"ではない)のダミーボタンを追加できます。ボタンのデフォルトの高さは、ナビゲーションバーの高さとほぼ同じです。したがって、ナビゲーションバーがボタンの上にある場合でも、重要なデータは完全に表示されます(ナビゲーションバーの上)。また、表示されるボタンについて考える必要はありません。

あなたのケースでは、フラグメントにスクロール可能なビューがあると仮定しています。そのため、スクロール可能なビュー(listview、recyclerview ...)の下のフラグメントxml内、またはフラグメントxmlの下部にボタンを配置する必要があります。

0
Akhil Soman

この行を追加してみてくださいAndroid:fitsSystemWindows="true"をCoordinatorLayoutに追加します。

0
Bob

このコードをimageviewに追加してみてください。

Android:layout_below="@+id/clubhouse_toolbar_main"

0
Albert Louise