效果如下:

代码如下:
这里给出部分关键代码
逻辑代码:

//反方向排列  recycleView.layoutManager = LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, true).apply {            stackFromEnd = true        }

adapter:

/** * 层叠头像Adapter */class LayerAvatarAdapter(): RecycleBaseAdapter<LayerAvatarViewHolder>() {    var avatarList = arrayListOf<String>()        set(value) {            field = value            notifyDataSetChanged()        }    override fun getItemCount() =  if (avatarList.size > 3) 3 else avatarList.size    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): LayerAvatarViewHolder {        super.onCreateViewHolder(parent, viewType)        val view = inflater.inflate(R.layout.item_layer_avatar,parent,false);        return LayerAvatarViewHolder(view)    }    override fun onBindViewHolder(holder: LayerAvatarViewHolder, position: Int) {        super.onBindViewHolder(holder, position)        if(position == avatarList.size - 1){            setMargins(holder.root,0,0,0,0)        }        GlideUtils.loadCircle(context,avatarList[position],holder.avatar)    }    private fun setMargins(v: View, l: Int, t: Int, r: Int, b: Int) {        if (v.layoutParams is ViewGroup.MarginLayoutParams) {            val p = v.layoutParams as ViewGroup.MarginLayoutParams            p.setMargins(l, t, r, b)//            v.layoutParams = p            v.requestLayout()        }    }}

LayerAvatarViewHolder

/** * 层叠头像 */class LayerAvatarViewHolder(@NonNull itemView : View) : RecycleBaseViewHolder(itemView) {    val avatar: ImageView = itemView.findViewById(R.id.item_layer_avatar)    val root: View = itemView.findViewById(R.id.root)}

xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout    xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/root"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:layout_marginLeft="-5dp">    <ImageView        android:id="@+id/item_layer_avatar"        android:layout_width="@dimen/dp_20"        android:layout_height="@dimen/dp_20"/>LinearLayout>

更多相关文章

  1. 自己写的一个android小应用 手电筒
  2. [Android]如何获得heap的大小
  3. Android(安卓)强制下线功能 第一行代码
  4. android代码库之执行Shell命令或者脚本
  5. 15款小应用源码
  6. 在android中如何在代码中设置textview的属性和效果
  7. Androd学习笔记——Android(安卓)Camera Parameters分析
  8. 编译Android(安卓)2.3.1 源代码心得
  9. Android(安卓)获取git 版本号

随机推荐

  1. Android(安卓)客户端发送邮件(JMail方式)
  2. android progressDialog的使用
  3. android ui 布局性能优化
  4. android:launchMode="singleTask"
  5. 为Android内核添加新驱动,并添加到menucon
  6. 详解Android中的Activity生命周期
  7. 修改android挂载时的盘符名
  8. Android与J2ME区别之我见(1)
  9. Android(安卓)之 SystemService
  10. Android(安卓)SDK下载慢的解决办法