如何在SwipeRefreshLayout中添加多个视图,其中一个是recyclerview?

时间:2015-11-24 12:08:33

标签: android xml

我在SwipeRefreshLayout中有一个recyclerview。在recyclerview结束时,我想添加一个按钮,但我无法这样做。代码如下:

<android.support.v4.widget.SwipeRefreshLayout
    android:id="@+id/refresh"
    android:layout_width="wrap_content"
    android:layout_below="@+id/toolbar"
    android:paddingBottom="50dp"
    android:layout_height="wrap_content">

    <android.support.v7.widget.RecyclerView
        android:id="@+id/recycler_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:clipToPadding="false"/>

    <Button
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:id="@+id/load_more"
        android:layout_alignParentBottom="true"
        android:textColor="@color/md_black_1000"
        android:text="TEST"/>

</android.support.v4.widget.SwipeRefreshLayout>

该按钮不会出现在recyclerview的末尾。

2 个答案:

答案 0 :(得分:9)

  

SwipeRefreshLayout只能有一个孩子。

RecyclerViewButton添加到垂直LinearLayout并将其放入SwipeRefreshLayout

<android.support.v4.widget.SwipeRefreshLayout>
    <LinearLayout>
        <android.support.v7.widget.RecyclerView>
        <Button>
    </LinearLayout>
</android.support.v4.widget.SwipeRefreshLayout>

要将Button添加为RecyclerView中的最后一项,您需要修改adapter

1)增加行数

@Override
public int getItemCount() {
    return pictureArrayList.size() + 1;
}

2)列表结束时显示Button

@Override
public void onBindViewHolder(final ExampleHolder holder, final int position) {
    final Picture picture = pictureArrayList.get(position);
    if (position <= pictureArrayList.size()) {
        holder.title.setVisibility(View.VISIBLE);
        holder.button.setVisibility(View.GONE);
        holder.title.setText(picture.getName());
        holder.imageView.setImageResource(picture.getImage());
    } else {
        holder.title.setVisibility(View.GONE);
        holder.button.setVisibility(View.VISIBLE);
    }
}

答案 1 :(得分:0)

您需要创建一个包含不同视图项的RecyclerView,具体取决于您要执行的操作,可能是使用列表底部的视图按钮的选项,我有一篇博文,其中我写了一篇关于RecyclerView的博客(西班牙)。

http://erikcaffrey.github.io/2015/10/05/recyclerview/

你可以看到代码!

https://github.com/erikcaffrey/RecyclerView-Examples