类微信界面设计2:recyclerview设计开发

338 阅读1分钟

目的:

在原微信界面上选择一个界面添加recyclerview显示。

工具:

Android Studio

原理:

RecyclerView是一种新的视图组,目标是为任何基于适配器的视图提供相似的渲染方式。它被作为ListView和GridView控件的继承者,在最新的support-V7版本中提供支持。

基本知识:

用法:

  • 添加依赖 compile'com.android.support:recyclerview-v7:23.1.1’
  • 使用recycleview组件
  • 控件初始化,设置布局管理器以及适配器Adapter

相关类:

  • RecycleView.Adapter:负责托管数据,为每一项item创建布局并绑定数据

  • RecycleView.ItemDecoration:给item添加分割线

  • RecycleView.ItemAnimator:负责处理Item增加或删除时的动画

  • RecycleView.ViewHolder:负责承载Item视图的子布局

实例(在一个界面添加item点击事件):

   在musicFrabment中添加如下代码:

public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) 
{    
   //选择你要实现的视图
   View view = inflater.inflate(R.layout.music,container,false);    
   context = view.getContext();

   // 选择你要实现的布局
   recyclerView = view.findViewById(R.id.recyclerview_music);   

   list = new ArrayList<String>();   

   //设置布局管理器
   LinearLayoutManager manager =new LinearLayoutManager(context);    

   manager.setOrientation(LinearLayoutManager.VERTICAL);    
   musicadapter = new Musicadapter(context, list); 

   recyclerView.setLayoutManager(manager);   

   //绑定适配器 
   recyclerView.setAdapter(musicadapter);    

   //给每个item添加分割线
   recyclerView.addItemDecoration(new DividerItemDecoration(context,LinearLayoutManager.VERTICAL));   

   //设置item点击
   musicadapter.setOnItemClickLitener(new Musicadapter.OnItemClickLitener() 
   {        
      @Override        
      public void onItemClick(View view, int position)
       {            
          Toast.makeText(context, "你点击的是:" +list.get(position), Toast.LENGTH_SHORT).show();       
       }    
    });  

   //数据
   initData();   
   return view;
}

    新建一个musicAdapter,需修改的部分如下:

//设置回调接口
public interface OnItemClickLitener{    
void onItemClick(View view,int position);
}

@Override
public void onBindViewHolder(@NonNull Musicadapter.MusicadapterHolder holder, final int position) {    
    final String content = mList.get(position);  

    holder.tvContent.setText(content);    
   //通过为条目设置点击事件触发回调    
   if(onItemClickLitener != null) {        
     holder.itemView.setOnClickListener(new View.OnClickListener() {            
     @Override            
      public void onClick(View v) {                
         onItemClickLitener.onItemClick(v,position);            
         }        
    });    
  }
}

效果图:

   若是对recyclerView的使用还有些疑惑,可以自行查找相关知识,也可以看一下这篇文章

blog.csdn.net/wuyinlei/ar…allfirst_rank_ecpm_v3~pc_rank_v3-2-50593747.wap_ecpm_v3_pc_rank_v3&utm_term=recycleview%E5%9F%BA%E6%9C%AC%E7%9F%A5%E8%AF%86&spm=1018.2118.3001.4187

希望对你有用。

  最后,附上代码仓库,仅作参考:gitee.com/wx_818382bd…