私は、アプリの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>
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"/>
RecyclerViewに下パディングを追加します。また、レイアウトマネージャでonMeasure
をオーバーライドしていない限り、Android:layout_height="wrap_content"
を使用しないでください。現在のレイアウトマネージャーはラップコンテンツをまだサポートしていません。
属性Android:clipToPadding="false"
を追加して、目標を達成します。コメントで述べたように。
親の残りの高さを占めるリサイクラービューの下にある例(この場合は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"
/>
簡単にパディングを追加できるように、そのためのユーティリティメソッドを作成しました
public void addLastChildPadding(RecyclerView.ViewHolder holder,int padding,int recyclerListSize,int position){
if(recyclerListSize-1==position){
holder.itemView.setPadding(0,0,0,padding);
}
}
これをすぐに試してください
<?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>
用途に応じて画像やその他の文字列を削除します。