AS类微信界面设计之recycleview的运用

recycleview的应用非常多,在使用Android设备时处处会用到他们,有顶部悬浮,下拉刷新,滑动删除等,这篇文章来介绍滑动删除。
滑动删除在Android中有一个非常广泛的应用就是下拉通知栏中删除通知信息,这个应该是每天都会碰到的。

首先是编写XML文件

在之前已经搭建好了类微信界面的框架,所以在上次的基础上添加东西就可以了,我把添加的内容放在了tab01界面,基本的思路是写好一个recycleview功能的单独且完善的整个系统,再将其添加到原来的文件中。而在XML文件中就是item.xml和include_item.xml,这两个文件的背景调用的是drawable中的XML文件。
item.xml

在这里插入图片描述

include_item.xml

在这里插入图片描述

另外,想要获得比较好的观感,应该在color.xml中放入颜色相关的文件,可以根据自己的要求调整
在这里插入图片描述

Java文件的编写

Java文件很多都与上次的一样,不用修改,只需要添加一个adapter.java文件和touchhelper.java文件及其监听的文件即可,然后在之前的文件上做一点修改,主要要修改的文件是weixinfragment.java,这个文件的主要功能是控制第一个界面,也就是我们添加recycleview的那个界面,我们按XML要求的格式填入要显示的信息即可,另一个比较重要的文件是adapter.java,它控制的是滑动删除的主要功能,代码如下:
package com.example.mywechat;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import androidx.recyclerview.widget.RecyclerView;

import java.util.List;

public class adapter extends RecyclerView.Adapter<adapter.swipeviewholder> implements TouchHelperListener {

private List<String>list;
private Context context;
private View inflater;

public adapter(Context context, List<String> list) {
    this.context=context;
    this.list=list;
}

@Override
public swipeviewholder onCreateViewHolder(ViewGroup parent, int viewType) {
    inflater= LayoutInflater.from(context).inflate(R.layout.item,parent,false);
    swipeviewholder swipeviewholder=new swipeviewholder(inflater);
    return swipeviewholder;
}

@Override
public void onBindViewHolder(swipeviewholder holder, int position) {
    holder.tvContent.setText(list.get(position));
}

@Override
public int getItemCount() {return list.size();}

@Override
public void onItemDismiss(int position) {
    if (position < 0 || position > getItemCount()) {
        return;
    }

    list.remove(position);
    notifyItemRemoved(position);


    if (position != list.size()) {
        notifyItemRangeChanged(position, list.size() - position);
    }
}

public class swipeviewholder extends RecyclerView.ViewHolder{
    TextView tvContent;

    public swipeviewholder(View itemView) {
        super(itemView);
        tvContent = itemView.findViewById(R.id.content);
    }
}

}
最后提一下recycleview的版本问题,网上大多是V7版本,但是用当前版本的AS中默认下载的androidx.recyclerview:recyclerview:1.1.0在实际编程中更方便。

运行样例

在这里插入图片描述
在这里插入图片描述
代码仓库地址:https://gitee.com/atbon/mobile-development-technology2.git

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值