web-dev-qa-db-fra.com

Barre de navigation recouvrant le dernier élément ListView (Android)

 enter image description here

Mon problème est similaire à l'image ci-dessus

Je reçois ce problème dans les appareils Nexus. J'ai ajouté une marge à partir du bas en obtenant la hauteur de la barre de navigation Bottom. Mais mon application montre une marge supplémentaire à partir du bas sur une tablette. 

Je ne veux rien changer dans mon fichier de style.

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>

Le drop_down_overlay_container dans ce framelayout est l'endroit où je montre mon fragment. 

17
sharma_kunal

Ok, le problème est le suivant: la hauteur du parent de la correspondance cardview correspond en réalité à la hauteur totale de l’écran avec la barre supérieure. Une solution très simple consiste à ajouter:

    Android:layout_marginBottom="?attr/actionBarSize"

comme ça:

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

Cela fonctionne sur mon émulateur Nexus 10 tablet. Faites-moi savoir si cela vous aide sinon je vais continuer à chercher :)

27
jobbert

avez-vous essayé cela

La barre de navigation molle inférieure recouvre mon ListView

Le seul problème est que vous indiquez que vous ne souhaitez pas modifier votre fichier de style (sans mentionner pourquoi!) Et que l'utilisateur obtient votre résultat en modifiant le fichier de style.

1

ajoutez simplement un rembourrage inférieur identique à la hauteur de la barre de navigation inférieure dans RecyclerView. 

0
MohdTausif

Juste une suggestion :
Vous pouvez ajouter un bouton factice avec une visibilité = "invisible" (pas "parti"). La hauteur par défaut d'un bouton est presque identique à celle de la barre de navigation. Ainsi, même si la barre de navigation est au-dessus du bouton, vos données importantes seront entièrement visibles (au-dessus de la barre de navigation). Et vous n'avez pas à penser au bouton vu.

Dans votre cas, je suppose que vous avez une vue défilable dans votre fragment. Vous devez donc placer le bouton dans votre fragment xml sous votre vue à défilement (listview, recyclerview ...) ou au bas de votre fragment xml.

0
Akhil Soman

Essayez d’ajouter cette ligne Android:fitsSystemWindows="true" à CoordinatorLayout.

0
Bob

essayez d'ajouter ce code dans imageview.

Android:layout_below="@+id/clubhouse_toolbar_main"

0
Albert Louise