# AliTitleWithList
仿阿里头部滑动及列表多布局实现

关于多布局实现那些事
# 原有实现方式:
1. 在Adapter的onBindViewHolder(RecycleView中)/getView(listView中),通过数据的Flag展示不同的界面
    例如:

public void onBindViewHolder(ViewHolder holder, final int position){        final BannerListBean banner = mList.get(position);        //判断广告样式        switch (banner.getType()){            case "1":                //TODO show item1                break;            case "2":                //TODO show item2                break;        }}


  
2. ScrollView + LinearLayout 获取到一个item的数据,往LinearLayout中add一个特定的view
    例如:
 

 LinearLayout.addView(LayoutInflater.from(mContext).inflate(R.layout.item_index_ad_content1,null));


3. 调用第三方框架如:[BRVAH](https://github.com/CymChad/BaseRecyclerViewAdapterHelper)   很好很强大。

4. 在RecycleView中有getItemViewType方法在onCreateViewHolder之前先设置当前item的类型在onCreateViewHolder创建的时候获取到Type值对不同的Type创建不同的ViewHolder
    本文中的多布局就是基于改思路做的一些相关的封装
    
#相关使用 
1. 为每种类型的item创建一个对应的视图模板,继承ItemViewFactory这个工厂类
    如 [Content_1_ItemView](/app/src/main/java/com/launch/alititlewithlist/view/cell/Content_1_ItemView.java)
2. 多布局示例
 

MultiTypeRecyclerAdapter adapter = new MultiTypeRecyclerAdapter();List datas = new ArrayList<>();    datas.add(new Content_1_ItemView(activity, dataModel));    ...datas.add(new Content_6_ItemView(activity, dataModel));    adapter.setData(itemList);recycleView.setAdapter(adapter);


3. 单布局示例
    为了兼容原来的单布局的模式,封装了一个入口用于单布局显示
   

List datas;          //列表中需要显示的数据模型adapter.singleData(activity, Content_1_ItemView.class, DataModel.class, datas);

Demo地址
    

更多相关文章

  1. 第一行代码(三)
  2. android日记-
  3. 查看 android 现在有什么分支
  4. android 公共顶部栏
  5. Android中使用adb命令获取当前打开app的包名
  6. Android2.3 API变更概要
  7. Android中设置启动动画
  8. Android常用布局样式介绍
  9. Android安卓开发 弹性布局(复制即用)

随机推荐

  1. Android 图片压缩详解
  2. Handle机制详解
  3. 深入Android的消息机制源码详解~Handler,M
  4. Android线程模型(Painless Threading)
  5. Android安卓系统提示应用程序未安装的解
  6. 《Android3D游戏开发技术详解与典型案例
  7. android下jni开发
  8. Android(安卓)事件拦截机制一种粗鄙的解
  9. 拥抱Android(安卓)Studio:从Eclipse到Andr
  10. Android(安卓)自定义音乐播放器实现