ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Android] RecylerView Header와 Footer
    Android 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/

Designed by Tistory.