wake-up-neo.com

Leere Ansicht unter Recyclerview kann nicht hinzugefügt werden

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>

enter image description here

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

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.

43
yigit

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

2
Lars

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);
}
}
1
Manokar

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.

0
AMAN SINGH