如何优雅的实现recycleview加入顶部headerview,实现一起滑动效果
1个回答
2017-02-16 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
关注
展开全部
分别代表header布局和普通布局, BaseAdapter;
mViews = new SparseArray<
if(position==0)return TYPE_HEADER;/,mHeaderView;
if(itemView==mHeaderView) return;
}
(6)最后在baseviewholder中判断itemview是否为headerview,然后让adapter加载不同的viewholder
public BaseViewHolder(View itemView;
(2)然后通过get构造器让我们可以通过adapter直接调用构造器直接设置headerview;
public View getmHeaderView() {
return mHeaderView;(),null);
}
public void setmHeaderView(View mHeaderView) {
this.monItemClickListener = onItemClickListener,判断是否有headerview;
View mView = null,
@Override
public void onBindViewHolder(BaseViewHolder holder.mHeaderView = mHeaderView;普通布局标志
public static final int TYPE_NORMAL=1;headerview的布局
private View mHeaderView, int position) {
if(getItemViewType(position)==TYPE_HEADER) return,根据是否有headerview返回不同的标志位:
@Override
public BaseViewHolder onCreateViewHolder(ViewGroup parent;/
this;/
bindData(holder;/:
/,View mHeaderView;
}
(4)在onCreateViewHolder根据不同的类型返回不同的viewholder, position), false), int viewType) {
if(mHeaderView (1)在adapter中定义两个标志量,monItemClickListener).mHeaderView=mHeaderView;
}
(5)最后在onBindViewHolder方法中根据不同的类型返回不同的布局:
/
/, mHeaderView!=null&&viewType==TYPE_HEADER) return new BaseViewHolder(mHeaderView.setOnClickListener(this).onItemClickListener onItemClickListener) {
super(itemView);
notifyItemInserted(0);
}
(3)接下来重写getviewtype方法;将header插入到顶部
return TYPE_NORMAL.inflate(itemViewID;
@Override
public int getItemViewType(int position) {
if(mHeaderView==null) return TYPE_NORMAL;>, null;
mView = mInflater;
itemView;
return new BaseViewHolder(mView;
this;/header布局标志
private static final int TYPE_HEADER=0
mViews = new SparseArray<
if(position==0)return TYPE_HEADER;/,mHeaderView;
if(itemView==mHeaderView) return;
}
(6)最后在baseviewholder中判断itemview是否为headerview,然后让adapter加载不同的viewholder
public BaseViewHolder(View itemView;
(2)然后通过get构造器让我们可以通过adapter直接调用构造器直接设置headerview;
public View getmHeaderView() {
return mHeaderView;(),null);
}
public void setmHeaderView(View mHeaderView) {
this.monItemClickListener = onItemClickListener,判断是否有headerview;
View mView = null,
@Override
public void onBindViewHolder(BaseViewHolder holder.mHeaderView = mHeaderView;普通布局标志
public static final int TYPE_NORMAL=1;headerview的布局
private View mHeaderView, int position) {
if(getItemViewType(position)==TYPE_HEADER) return,根据是否有headerview返回不同的标志位:
@Override
public BaseViewHolder onCreateViewHolder(ViewGroup parent;/
this;/
bindData(holder;/:
/,View mHeaderView;
}
(4)在onCreateViewHolder根据不同的类型返回不同的viewholder, position), false), int viewType) {
if(mHeaderView (1)在adapter中定义两个标志量,monItemClickListener).mHeaderView=mHeaderView;
}
(5)最后在onBindViewHolder方法中根据不同的类型返回不同的布局:
/
/, mHeaderView!=null&&viewType==TYPE_HEADER) return new BaseViewHolder(mHeaderView.setOnClickListener(this).onItemClickListener onItemClickListener) {
super(itemView);
notifyItemInserted(0);
}
(3)接下来重写getviewtype方法;将header插入到顶部
return TYPE_NORMAL.inflate(itemViewID;
@Override
public int getItemViewType(int position) {
if(mHeaderView==null) return TYPE_NORMAL;>, null;
mView = mInflater;
itemView;
return new BaseViewHolder(mView;
this;/header布局标志
private static final int TYPE_HEADER=0
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询