Recyclerview abgedeckt BottomNavigationView
Habe ich versucht den Google-Support-Bibliothek BottomNavigationView mit einem Framelayout für meine Fragmente .
Hier mein code
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout 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:fitsSystemWindows="true"
tools:context="com.bottombarnavigation.MainActivity">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<include layout="@layout/toolbar"/>
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_main" />
<android.support.design.widget.BottomNavigationView
android:background="#fcfcfc"
android:id="@+id/bottom_navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
app:menu="@menu/bottom_navigation" />
</android.support.design.widget.CoordinatorLayout>
Wenn ich füllen meine Recyclerview innen das Fragment, dessen Inhalt bekam bei der BottomNavigationView .
Ich habe keine Ahnung, warum dies geschieht. Ich Blick durch andere Menschen Anleitung und es funktioniert gut.
BEARBEITEN
Hier ist meine content_main.xml Datei
<?xml version="1.0" encoding="utf-8"?>
<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:background="@android:color/white"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="com.bottombarnavigation.MainActivity"
tools:showIn="@layout/activity_main">
<FrameLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"></FrameLayout>
</RelativeLayout>
- Versuchen Sie, diese link. Ich denke, Attribute, app:layout_anchor und app:layout_anchorGravity verpasst werden.
- ich habe es gerade ausprobiert und die Ergebnisse sind die gleichen. recyclerview Inhalt ist immer noch hinter bottomnavigationview
- Haben Sie gefunden, die Antwort auf dieses problem?
InformationsquelleAutor EggRollMan | 2016-12-17
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier meine Lösung, ist die Arbeit für mich.
Ich habe fast das gleiche layout wie du, ich zog die
BottomNavigationView
aus derCoordinatorLayout
wie ich brauchen keine animation auf.Ich habe ausgerichtet
BottomNavigationView
um die Eltern unten, und fügte hinzulayout_above
zuCoordinatorLayout
haben Sie es über denBottomNavigationView
aber die Füllung alle auf dem Bildschirm.Mit dieser Konfiguration habe ich Fix die überlappenden Problem, ich hoffe, dass dies Ihnen helfen würde.
Hier haben Sie mein layout.
Eines der nützlichsten Funktion des
CoordinatorLayout
ist Blick Ausweichen.Kind Blick auf die
CoordinatorLayout
zugeordnet werden können, als "insetting" eine Kante.Jedes andere Kind anzeigen, die Sie zuweisen, wie Ausweichen, der gleichen Kante wird dann entsprechend angepasst werden.
In Ihrem Fall würden Sie etwas wie die folgende:
app:layout_behavior="@string/hide_bottom_view_on_scroll_behavior"
zu IhremBottomNavigationView
und schauen, was passiert ))Können Sie die RecyclerView und die BottomNavigationView in einem LinearLayout, und setzen Sie dann das LinearLayout in der CoordinatorLayout. Setzen Sie das Attribut der RecyclerView als
layout_height="0dp"
layout_weight="1"
, und das Attribut des BottomnavigationView alslayout_height="wrap_content"
layout_gravity="bottom"
.Hier ist ein Teil von meinem code, der Wunsch, Ihnen zu helfen.
app:layout_scrollFlags="scroll|enterAlways"
ist für die Werkzeugleiste, wird es zuBottomNavigationView
ausgeblendet werden, wenn Sie nach unten scrollen.Legen Sie den Papierkorb veiw oder was auch immer anzuzeigen, die in der Höhe 0dp und Gewicht 1. Dadurch wird es dauern, alle verfügbaren Platz.
Können Sie eine ItemDecorator zu Ihrem recycler Ansicht, fügt einige padding. Ich bin mit Kotlin anstelle von Java, aber die Allgemeine Idee ist:
Geben einige statische Höhe in dp für BottomNavigationView statt wrap_content, weil Ihre Eltern-layout i,e Koordinator layout erstreckt sich framelayout, das seine Standard-Verhalten ist, und stellen Ihre untergeordneten Ansichten eines über dem anderen. Thats y Ihre fragment-container ist bedeckt durch botomnavigationview.
BottomNavigationView
zucontent_main.xml
und legen Sie Sie inRelativeLayout
android:layout_alignParentBottom="true"
zuBottomNavigationView
android:layout_above="@id/bottom_navigation"
zu containerFrameLayout
Aktualisieren Sie Ihre layout-XML ist wie folgt:
activity_main.xml:
content_main.xml:
Hoffe das hilft weiter~
In die wichtigsten Inhalte, die Sie in Ihrem layout. Geben Sie dem Rand unten, um den Papierkorb anzuzeigen.
Da recycler Sicht verbergen sich hinter der unteren navigation anzeigen