-
[Android] RecylerView Header와 FooterAndroid 2016. 10. 28. 20:23
public class Job_Adapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
//1은 아이템 2는 푸터
private static final int TYPE_ITEM = 1;
private static final int TYPE_FOOTER = 2;private List<test> test_list;
//생성자
public Job_Adapter(Context context, List<test> objects) {this.context = context;
this.test_list = objects;
}
//뷰 타입에따라 2가지를 인플레이트시킨다.
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
if (viewType == TYPE_FOOTER) {
//푸터인 경우
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.recyclerview_footer, parent, false);
Dlog.d("푸터");
return new FooterViewHolder(v);
} else if (viewType == TYPE_ITEM) {
//아이템인
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.card_item_job, parent, false);
Dlog.d("아이템");
return new ViewHolder(v);
}
return null;
}
//여기서 뷰 셋팅
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {
if (holder instanceof ViewHolder) {//뷰 타입이 아이템일 경우
ViewHolder item_holder = (ViewHolder) holder;
} else if (holder instanceof FooterViewHolder) {//뷰타입이 푸터 생성하기 버튼일 경우
FooterViewHolder footerHolder = (FooterViewHolder) holder;
}
}
//아이템 사이즈 +1 한다. 마지막에 푸터를 추가하기 위함이다.
@Override
public int getItemCount() {
return test_list.size() + 1;
}
//뷰타입 정하기
@Override
public int getItemViewType(int position) {
if (isPositionFooter(position)) {
return TYPE_FOOTER;
}
return TYPE_ITEM;
}
//true가 반환되면 리스트의 끝임을 알수있다.
private boolean isPositionFooter(int position) {
int num = getSub2List.size();
Dlog.d(String.valueOf(position) + "==" + String.valueOf(num));
return position == getSub2List.size();
}
//푸터 뷰 홀더
public class FooterViewHolder extends RecyclerView.ViewHolder {
public FooterViewHolder(View itemView) {
super(itemView);
}
}
//아이템 뷰 홀더
public class ViewHolder extends RecyclerView.ViewHolder {
public ViewHolder(View itemView) {
super(itemView);
}
}
}참조 : http://takeoffandroid.com/android-customview/header-and-footer-layout-for-recylerview/
' Android' 카테고리의 다른 글
[Android] EditText 자동포커스 막기 (0) 2016.06.01 [Android] 액티비티 생명주기 (0) 2016.05.11 [Android] HttpClient의 GetData 사용시 한글처리 (0) 2016.05.02 [Android] Yalantis Context Menu (0) 2016.04.08