Navbar overlapping last ListView item (Android)

sharma_kunal picture sharma_kunal · Apr 23, 2016 · Viewed 9.8k times · Source

enter image description here

My problem is similar to above Image

I am getting this issue in Nexus Devices. I added margin from bottom by getting Bottom Navigation Bar height. But my application is showing extra margin from the bottom on a tablet.

I do not want to change anything in my style file.

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>

The drop_down_overlay_container in this framelayout is where I am showing my Fragment.

Answer

jobbert picture jobbert · Apr 28, 2016

Ok the problem is the following, the cardview match parent height is actually the full screen height with top bar. An very easy fix for this is to add:

    android:layout_marginBottom="?attr/actionBarSize"

like this:

<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"/>

This works on my emulator nexus 10 tablet. Let me know if this helps you otherwise I'll keep searching :)