2016-04-23 15 views
14

enter image description hereNavbar überlappende letztes Listview-Element (Android)

Mein Problem ist ähnlich wie oben Bild

Ich erhalte dieses Problem in Nexus-Geräten. Ich habe den Rand von unten hinzugefügt, indem ich Bottom Navigation Bar Höhe bekam. Aber meine Anwendung zeigt einen zusätzlichen Rand von unten auf einem Tablet.

Ich möchte nichts in meiner Style-Datei ändern.

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> 

Die drop_down_overlay_container in diesem framelayout ist, wo ich meine Fragment bin zeigt.

+0

Können Sie die Frage abschließen, indem Sie zusätzliche Details wie das von Ihnen verwendete Layout oder einen anderen relevanten Code eingeben? –

+0

Sry für weniger Informationen. –

+0

Können Sie uns mit einem Screenshot und markieren Sie die genaue Stelle des Problems – jobbert

Antwort

-1

Es sieht aus wie etwas im Zusammenhang mit SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION. Stellen Sie sicher, dass für Ihre Aktivität dieses Flag nicht gesetzt ist

+0

ja ich habe keine Flagge hinzugefügt –

+0

Sie müssen diese Flagge löschen – mbonnin

+0

Sry Ich habe diese Flagge nicht hinzugefügt –

0

Versuchen Sie, diese Zeile android:fitsSystemWindows="true" dem CoordinatorLayout hinzuzufügen.

+0

nein, es funktioniert nicht –

19

Ok das Problem ist das folgende, die cardview Match Elternhöhe ist eigentlich die volle Bildschirmhöhe mit Top-Bar. Eine sehr einfache Lösung hierfür ist hinzuzufügen:

android:layout_marginBottom="?attr/actionBarSize" 

wie folgt aus:

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

Dies funktioniert auf meinem Emulator 10 Nexus Tablet. Lassen Sie mich wissen, ob dies hilft Ihnen, sonst werde ich weitersuchen :)

+0

sogar ich überprüft durch Entfernen der Marge. Ich möchte nur die Ursache wissen –

+0

Wirklich Danke, ich überprüft auf Sony Xperia Modellnummer: - SGP771 und Version: - 5.02 –

+1

Aber ich löse mein Problem nicht.Weil mein Problem im Zusammenhang mit anderen Geräten Marge von unten ist nicht die perfekte Lösung. Wenn Sie wollen +50 Punkt kein Problem, aber ich bin neugierig auf die Ursache –

0

haben Sie diese

Bottom soft NavigationBar overlaps my ListView

Das einzige Problem versuchen, ist, dass Sie erwähnen Sie wollen nicht Ihre Stil-Datei ändern (warum nicht erwähnt!) und dieser Benutzer erreicht Ihr Ergebnis durch Änderung der Style-Datei.

0

versuchen Sie, diesen Code in Imageview hinzuzufügen.

android:layout_below="@+id/clubhouse_toolbar_main"

0

Nur ein Vorschlag:
Sie eine Dummy-Taste mit Sicht = "unsichtbar" (nicht "weg") hinzufügen könnte. Die Standardhöhe einer Schaltfläche entspricht fast der der Navigationsleiste. Selbst wenn sich die Navigationsleiste über der Schaltfläche befindet, sind Ihre wichtigen Daten vollständig sichtbar (über der Navigationsleiste). Und Sie müssen nicht daran denken, dass der Knopf gesehen wird.

In Ihrem Fall nehme ich an, dass Sie eine scrollbare Ansicht in Ihrem Fragment haben. Sie sollten also den Button innerhalb Ihres XML-Fragments unter Ihrer scrollbaren Ansicht (Listview, Recyclerview ...) oder am unteren Rand Ihres Fragments xml platzieren.

+0

Das Problem dabei ist, dass Sie nicht wissen, wie viele DP die Navbar auf jedem Gerät nimmt. – Aenadon

+0

müssen Sie sich nicht um den DP sorgen. In jeder Bildschirmgröße ist die Standardhöhe einer Schaltfläche fast identisch mit der der Navigationsleiste. –

0

fügen Sie einfach die untere Polsterung wie die Höhe der unteren Navigationsleiste in RecyclerView hinzu.

+0

Das Problem dabei ist, dass Sie nicht wissen, wie viele DP die Navbar auf jedem Gerät dauert. – Aenadon