Create an additional download button in recyclerview.
, , , :
- +1 getItemCount() ( ), , .
getItemCount :
private boolean hasLoadButton = true;
public boolean isHasLoadButton() {
return hasLoadButton;
}
public void setHasLoadButton(boolean hasLoadButton) {
this.hasLoadButton = hasLoadButton;
notifyDataSetChanged();
}
@Override
public int getItemCount() {
if (hasLoadButton) {
return data.size() + 1;
} else {
return data.size();
}
}
:
private final int TITLE = 0;
private final int LOAD_MORE = 1;
@Override
public int getItemViewType(int position) {
if (position < getItemCount()) {
return TITLE;
} else {
return LOAD_MORE;
}
}
0 data.size() - 1, typeView , .
:
onCreateViewHolder ( ViewGroup, int viewType), y
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
if (viewType == TITLE) {
return new MyViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.nav_draw_row, parent, false));
} else if (view type == LOAD_MORE) {
return new MyViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.load_more_row, parent, false));
} else {
return null;
}
}
load_more_row
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<Button
android:id="@+id/load_more"
android:text="load more !"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</RelativeLayout>
, .
, , onBindViewHolder:
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
if(position >= getItemCount) {
holder.loadMore....
} else {
NavDrawerItem current = data.get(position);
holder.title.setText(current.getTitle());
}
}
, , , recyclerview!