我在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的末尾。
答案 0 :(得分:9)
SwipeRefreshLayout只能有一个孩子。
将RecyclerView
和Button
添加到垂直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/
你可以看到代码!