Android RecyclerView的使用过程遇到的问题
来源:互联网 发布:三国杀程昱淘宝 编辑:程序博客网 时间:2024/04/28 02:24
RecyclerView滚动显示图片
一概述
本来关于Recycler的博客鸿洋大神已经写的非常好请看 Android 自定义RecyclerView 实现真正的Gallery效果:为了加强记忆,我补充一些在我实现时遇到的问题
二 我遇到的问题
1在重写recyclerView 的适配器遇到的问题:
public class GalleryAdapter extends RecyclerView.Adapter<GalleryAdapter.ViewHolder> static public class ViewHolder extends RecyclerView.ViewHolder { public ViewHolder(View itemView) { super(itemView); } public ImageView img; public TextView text; }
这里重用布局视图自定义的类需要用静态类,且在继承RecyclerView.Adapter
private OnClickListener OnItemClickListener; public OnClickListener getOnItemClickListener() { return OnItemClickListener; } public void setOnItemClickListener(OnClickListener onItemClickListener) { OnItemClickListener = onItemClickListener; } @Override public void onBindViewHolder(ViewHolder mViewHolder, final int position) { mViewHolder.img.setImageResource(listImgs.get(position)); mViewHolder.text.setText(String.valueOf(position)); if (OnItemClickListener!=null) { mViewHolder.itemView.setOnClickListener(OnItemClickListener); }
在写recyclerview的点击事件时我首先想到的不是自定义的回调接口而是用的系统的OnClickListener 的单击回调接口,在onBindViewHolder中调用回调接口
if (OnItemClickListener!=null) {
mViewHolder.itemView.setOnClickListener(OnItemClickListener);
}
那么在主界面怎样设置图片资源:
myAdapter.setOnItemClickListener(new View.OnClickListener() { @Override public void onClick(View v) { img.setImageDrawable(((ImageView)v.findViewById(R.id.imgItem)).getDrawable()); } });
R.id.imgItem是recyclerview中项的xml文件中imgview对应id
当然也可以自定义回调方法,多定义一个参数就行
interface CallBack{ void onclik(View view,int position); } if (callBack!=null) { mViewHolder.itemView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { callBack.onclik(v, position); } }); }
2在重写Recyclerview中遇到的问题
@Override protected void onLayout(boolean changed, int l, int t, int r, int b) { // TODO Auto-generated method stub super.onLayout(changed, l, t, r, b); crrentView=getChildAt(0); if (onChangeLister!=null) { onChangeLister.onChange(crrentView); } }
这是初始化img
public void onScrolled(int arg0, int arg1) { View newView=getChildAt(0); if (onChangeLister!=null) { if (!newView.equals(crrentView)) { crrentView=newView; onChangeLister.onChange(newView); } } }
这个是滚动时替换imgview
源码下载
三总结
回调的使用:一个a类调用本类中定义的回调接口,在需要使用的b类中实现接口,一种通过a类中接口方法的参数传递给b类数据
0 0
- Android RecyclerView的使用过程遇到的问题
- RecyclerView遇到的问题
- RecyclerView初使用遇到的一个问题
- 使用RecyclerView时遇到的问题
- RecyclerView中使用checkbox遇到的问题
- RecyclerView使用中遇到的问题
- 使用RecyclerView遇到的问题及解决
- RecyclerView使用xRefreshView时遇到的问题
- 使用Recyclerview控件遇到的一些问题
- RecyclerView GridLayoutManager 使用遇到的问题
- 使用RecyclerView中遇到的问题
- 记一次RecyclerView使用过程遇到的坑
- RecyclerView遇到的问题记录
- 在android studio中RecyclerView的使用和遇到的问题(记录):
- 使用Android Studio遇到的问题及解决过程
- android-studio 使用过程遇到的问题,持续中...
- Android studio使用过程中遇到的问题
- 使用Android Studio遇到的问题及解决过程
- CSS 框模型Margin ,Border ,Padding ,Content
- hdu 1427 速算24点
- easyui combobox 下拉列表添加选择项
- 在 Unix 系统上查找数据的最佳工具和技巧
- Android 解析XML数据
- Android RecyclerView的使用过程遇到的问题
- 年入百万的表弟给我上一课:互联网思维该怎么接地气
- jQuery小例子
- 第8周 项目1 - 建立顺序串的算法库
- 黑马程序员——基础知识-成员方法和成员变量
- jQuery的deferred对象详解
- netsh 操作实践
- 爱贝云计费接口契约鉴权说明
- (NO.00001)iOS游戏SpeedBoy Lite成形记(六)