栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Android 5.0

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android 5.0

我必须在其中添加页脚

RecyclerView
,在这里我分享了我的代码段,因为我认为它可能有用。请检查代码中的注释,以更好地了解整体流程。

import android.content.Context;import android.support.v7.widget.RecyclerView;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import java.util.ArrayList;public class RecyclerViewWithFooterAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {    private static final int FOOTER_VIEW = 1;    private ArrayList<String> data; // Take any list that matches your requirement.    private Context context;    // Define a constructor    public RecyclerViewWithFooterAdapter(Context context, ArrayList<String> data) {        this.context = context;        this.data = data;    }    // Define a ViewHolder for Footer view    public class FooterViewHolder extends ViewHolder {        public FooterViewHolder(View itemView) { super(itemView); itemView.setonClickListener(new View.onClickListener() {     @Override     public void onClick(View v) {         // Do whatever you want on clicking the item     } });        }    }    // Now define the ViewHolder for Normal list item    public class NormalViewHolder extends ViewHolder {        public NormalViewHolder(View itemView) { super(itemView); itemView.setonClickListener(new View.onClickListener() {     @Override     public void onClick(View v) {         // Do whatever you want on clicking the normal items     } });        }    }    // And now in onCreateViewHolder you have to pass the correct view    // while populating the list item.    @Override    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {        View v;        if (viewType == FOOTER_VIEW) { v = LayoutInflater.from(context).inflate(R.layout.list_item_footer, parent, false); FooterViewHolder vh = new FooterViewHolder(v); return vh;        }        v = LayoutInflater.from(context).inflate(R.layout.list_item_normal, parent, false);        NormalViewHolder vh = new NormalViewHolder(v);        return vh;    }    // Now bind the ViewHolder in onBindViewHolder    @Override    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {        try { if (holder instanceof NormalViewHolder) {     NormalViewHolder vh = (NormalViewHolder) holder;     vh.bindView(position); } else if (holder instanceof FooterViewHolder) {     FooterViewHolder vh = (FooterViewHolder) holder; }        } catch (Exception e) { e.printStackTrace();        }    }    // Now the critical part. You have return the exact item count of your list    // I've only one footer. So I returned data.size() + 1    // If you've multiple headers and footers, you've to return total count    // like, headers.size() + data.size() + footers.size()    @Override    public int getItemCount() {        if (data == null) { return 0;        }        if (data.size() == 0) { //Return 1 here to show nothing return 1;        }        // Add extra view to show the footer view        return data.size() + 1;    }    // Now define getItemViewType of your own.    @Override    public int getItemViewType(int position) {        if (position == data.size()) { // This is where we'll add footer. return FOOTER_VIEW;        }        return super.getItemViewType(position);    }    // So you're done with adding a footer and its action on onClick.    // Now set the default ViewHolder for NormalViewHolder    public class ViewHolder extends RecyclerView.ViewHolder {        // Define elements of a row here        public ViewHolder(View itemView) { super(itemView); // Find view by ID and initialize here        }        public void bindView(int position) { // bindView() method to implement actions        }    }}

上面的代码段在中添加了页脚RecyclerView。你可以检查此GitHub存储库,以检查添加页眉和页脚的实现。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/366395.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号