Ich habe mich mit einer Recycling-Übersicht und einem Floating-Action-Button für eine App versucht. Das Problem, auf das ich gestoßen bin, ist, dass die schwebende Aktionstaste die Tasten in der Recyclingübersicht behindert. Ich habe nachgesehen, wie Android-Apps wie die Telefon-App (eine, bei der Kontakte in gridvew angezeigt werden), damit umgehen sollen. Ich sehe, dass unten ein leerer Speicherplatz vorhanden ist, der Platz zwischen RecyclerView und Floating-Action-Button bietet Ich muss nur nach unten scrollen, um die Überlappung zu vermeiden ... Ich habe versucht, eine Ansicht nach der Recyclingübersicht hinzuzufügen, aber es wird nicht angezeigt, auch diese Ansicht sollte sich zusammen mit den Zeilen der Recyclingansicht bewegen. Was fehlt mir, um am Ende des Recyclings eine Ansicht anzuzeigen .. Meine Layoutdatei:
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:background="#6fbababa">
<Android.support.v7.widget.RecyclerView
Android:id="@+id/my_recycler_view"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:scrollbars="vertical"/>
<ImageButton
Android:id="@+id/button_floating_action"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_alignParentRight="true"
Android:layout_alignParentEnd="true"
Android:src="@drawable/ic_fab"
Android:background="@null"
Android:layout_alignParentBottom="true"
Android:layout_marginBottom="12dp"
Android:layout_marginEnd="12dp"
Android:layout_marginRight="12dp"
Android:elevation="2dp"/>
<View
Android:layout_width="match_parent"
Android:layout_height="30dp"
Android:layout_below="@id/my_recycler_view"
Android:background="@color/white"/>
</RelativeLayout>
Update: Der Layoutcode wurde geändert, damit er funktioniert.
<Android.support.v7.widget.RecyclerView
Android:id="@+id/my_recycler_view"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:clipToPadding="false"
Android:paddingBottom="30dp"
Android:scrollbars="vertical"/>
Fügen Sie der RecyclerView-Funktion die untere Auffüllung hinzu. __ Verwenden Sie auch Android:layout_height="wrap_content"
nur, wenn Sie onMeasure
im Layout-Manager überschrieben haben. Derzeitige Layout-Manager unterstützen noch keinen Wrap-Inhalt.
Fügen Sie das Attribut Android:clipToPadding="false"
hinzu, um das Ziel zu erreichen . Wie in den Kommentaren erwähnt.
Hier ist ein Beispiel (in diesem Fall eine ListView, könnte aber alles sein) unter einer Recycler-Ansicht, die die restliche Höhe des übergeordneten Elements beansprucht. Beachten Sie die Attribute layout_alignParentBottom und layout_above.
<RelativeLayout
Android:layout_width="fill_parent"
Android:layout_height="fill_parent">
<ListView
Android:id="@+id/list_view"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:scrollbars="none"
**Android:layout_alignParentBottom="true"**
/>
<Android.support.v7.widget.RecyclerView
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:scrollbars="vertical"
Android:layout_above="@+id/list_view"
/>
Ich habe dafür eine Utility-Methode erstellt, mit der Sie das Padding problemlos hinzufügen können
public void addLastChildPadding(RecyclerView.ViewHolder holder,int padding,int recyclerListSize,int position){
if(recyclerListSize-1==position){
holder.itemView.setPadding(0,0,0,padding);
}
}
Versuchen Sie es sofort
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:orientation="vertical">
<RelativeLayout
Android:layout_width="match_parent"
Android:layout_height="match_parent">
<RelativeLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content">
<Android.support.v7.widget.RecyclerView
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:clipToPadding="false">
</Android.support.v7.widget.RecyclerView>
</RelativeLayout>
<RelativeLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_alignParentBottom="true"
Android:layout_marginBottom="15dp">
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_marginLeft="20dp"
Android:layout_marginRight="20dp"
Android:orientation="horizontal">
<Android.support.v7.widget.AppCompatButton
Android:layout_width="0dp"
Android:layout_height="wrap_content"
Android:layout_marginRight="15dp"
Android:layout_weight="1"
Android:background="@drawable/button_primary_color_border"
Android:text="70%"
Android:textColor="@Android:color/darker_gray"
Android:textSize="20sp" />
<Android.support.v7.widget.AppCompatButton
Android:layout_width="0dp"
Android:layout_height="wrap_content"
Android:layout_marginRight="15dp"
Android:layout_weight="1"
Android:background="@drawable/button_primary_color_border"
Android:text="60%"
Android:textColor="@Android:color/darker_gray"
Android:textSize="20sp" />
</LinearLayout>
</RelativeLayout>
</RelativeLayout>
</LinearLayout>
</LinearLayout>
Entfernen Sie Bilder und andere Zeichenfolgen entsprechend Ihrer Verwendung.