一对一视频聊天软件源码,安卓侧滑删除刷新实现的相关代码
1、布局
RecyclerView
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/collection_poem_listview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@+id/collection_poem_title"/>
item布局,新建xml,其中SwipeMenuLayout(需要导包)参考一个零耦合的侧滑菜单
SwipeMenuLayout
<cn.ljp.swipemenu.SwipeMenuLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/swipe_menu_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
app:isEnableLeftMenu="false"
app:isEnableSwipe="true"
app:isClickMenuAndClose="false"
app:isOpenChoke="true">
<LinearLayout
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@drawable/col_bord">
<TextView
android:id="@+id/recommend_poem_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="8pt"
android:textColor="#000"
android:text="客亭"
android:textStyle="bold"
android:lineSpacingMultiplier="1.5"
android:layout_marginLeft="20dp"
android:layout_marginTop="30dp"/>
<TextView
android:id="@+id/recommend_poem_author"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="6pt"
android:textColor="#E0C091"
android:text="唐代/杜甫"
android:lineSpacingMultiplier="1.0"
android:layout_marginLeft="20dp" />
<TextView
android:id="@+id/recommend_poem_first_sentence"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="8pt"
android:textColor="#848484"
android:text="秋窗犹曙色,落木更天风。"
android:lineSpacingMultiplier="1.5"
android:layout_marginLeft="20dp"
android:layout_marginBottom="20dp"/>
</LinearLayout>
<TextView
android:id="@+id/menu"
android:layout_width="120dp"
android:layout_height="wrap_content"
android:text="删除"
android:textSize="18sp"
android:textColor="@color/white"
android:background="#F24C4C"
android:paddingLeft="42dp"
android:paddingRight="42dp"
android:paddingTop="45dp"
android:paddingBottom="44dp"/>
</cn.ljp.swipemenu.SwipeMenuLayout>
2、适配器(两个点击事件),点击删除时候更新item内容
点击事件设置两个,一个是点击之前的linerlayout中的内容,另个是点击删除的textview
1.接口
public interface onItemClickListener{
void onClick(int pos);
void ontClick(int pos);
}
2.两个点击
holder.linearLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mlistener.onClick(position);
}
});
holder.menu.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mlistener.ontClick(position);
notifyItemRemoved(position);
notifyDataSetChanged();
}
});
3.删除条目并更新此条目以下
notifyItemRemoved(position);
notifyDataSetChanged();
4.整体
public class CollectionAdapter extends RecyclerView.Adapter<CollectionAdapter.CollectionHolder>{
private Context mcontext;
private CollectionAdapter.onItemClickListener mlistener;
private ArrayList<RecommendPoem> mlist;
public CollectionAdapter(Context context, ArrayList<RecommendPoem> list, CollectionAdapter.onItemClickListener listener){
this.mcontext=context;
this.mlistener=listener;
this.mlist=list;
}
@NonNull
@Override
public CollectionHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new CollectionAdapter.CollectionHolder(LayoutInflater.from(mcontext).inflate(R.layout.home_page_recommend_poem_item,parent,false));
}
@Override
public void onBindViewHolder(@NonNull CollectionHolder holder, int position) {
if(mlist!=null&&mlist.size()>0){
holder.textView1.setText(mlist.get(position).getTitle());
holder.textView2.setText(mlist.get(position).getAuthor());
holder.textView3.setText(mlist.get(position).getFirstSentence());
}
holder.linearLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mlistener.onClick(position);
}
});
holder.menu.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mlistener.ontClick(position);
notifyItemRemoved(position);
notifyDataSetChanged();
}
});
}
@Override
public int getItemCount() {
return mlist.size();
}
public class CollectionHolder extends RecyclerView.ViewHolder {
//@BindView(R.id.recommend_poem_title)
private TextView textView1;
private TextView textView2;
private TextView textView3;
private LinearLayout linearLayout;
private TextView menu;
public CollectionHolder(@NonNull View itemView) {
super(itemView);
linearLayout=itemView.findViewById(R.id.content);
textView1=itemView.findViewById(R.id.recommend_poem_title);
textView2=itemView.findViewById(R.id.recommend_poem_author);
textView3=itemView.findViewById(R.id.recommend_poem_first_sentence);
menu=itemView.findViewById(R.id.menu);
}
}
public interface onItemClickListener{
void onClick(int pos);
void ontClick(int pos);
}
}
3、Activity
//收藏展示
RecyclerView listView = (RecyclerView) findViewById(R.id.collection_poem_listview);
listView.setLayoutManager(new LinearLayoutManager(this));
listView.setAdapter(new CollectionAdapter(this, collectionPoemList, new CollectionAdapter.onItemClickListener() {
@Override
public void onClick(int pos) {
//自定义条目点击事件
}
@Override
public void ontClick(int pos) {
//点击删除事件
//设置数据库删除等
collectionPoemList.remove(pos);
}
}));
以上就是一对一视频聊天软件源码,安卓侧滑删除刷新实现的相关代码, 更多内容欢迎关注之后的文章