web-dev-qa-db-ja.com

Recyclerviewの下に空のビューを追加できません

私は、アプリのrecyclerviewとフローティングアクションボタンを使って手を試しました。私が遭遇した問題は、フローティングアクションボタンがrecyclerviewのボタンを妨げることです。 Android電話アプリなどのアプリ(gridvewに連絡先が表示されているもの)がこれに対処するように設計されている)を調べたところ、下部に空のスペースが残っており、 recyclerviewとフローティングアクションボタンの間のスペース。ユーザーは下にスクロールしてオーバーラップを回避する必要があります。recyclerviewの後にビューを追加しようとしましたが、表示されません。また、このビューはrecyclerviewの行に沿って移動するはずです。 recyclerviewの最後にビューを表示するために欠落しています。私のレイアウトファイル:

<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

pdate:動作するようにレイアウトコードを変更しました。

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

RecyclerViewに下パディングを追加します。また、レイアウトマネージャでonMeasureをオーバーライドしていない限り、Android:layout_height="wrap_content"を使用しないでください。現在のレイアウトマネージャーはラップコンテンツをまだサポートしていません。

属性Android:clipToPadding="false"を追加して、目標を達成します。コメントで述べたように。

45
yigit

親の残りの高さを占めるリサイクラービューの下にある例(この場合はlistViewですが、何でもかまいません)です。 layout_alignParentBottomおよび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

簡単にパディングを追加できるように、そのためのユーティリティメソッドを作成しました

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

これをすぐに試してください

<?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>

用途に応じて画像やその他の文字列を削除します。

0
AMAN SINGH