RecyclerView评论列表嵌套子评论列表

 RecyclerView相比listView和GridView更加灵活高效,之前一直在用ListView,结合自定义ViewHolder做一些界面,用RecyclerView之后感觉二者十分相似,RecyclerView省去了ListView中getViewV()方法的setTag和getTag函数调用。

 假期准备比赛第一次用RecyclerView,实现了类似QQ动态详情页的评论列表,点击评论图标发表评论,点击评论字段发送二级评论,点击二级评论可以进行回复,先看一下效果图:


 稍微复杂点的处理就是RecyclerView的动态更新,更新前要判定在哪里添加评论,是添加评论Item还是更新Item中的子评论,

同时要注意是否是回复评论人。处理方法是声明3个标记变量,分别对应上述的情况,在监听方法中更改变量,发表新评论就根据

变量的取值对RecyclerView进行更新。

布局文件就是一个简单的RecyclerView,为其设置一个ViewHeader,这个ViewHeader就是所要评论的动态内容。

以下是activity代码:

package com.eztt.dtour.activity;

import android.content.ClipboardManager;
import android.content.Context;
import android.graphics.Bitmap;
import android.os.Build;
import android.support.annotation.RequiresApi;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import android.widget.ImageView;
import android.widget.TextView;

import com.bumptech.glide.Glide;
import com.eztt.dtour.DTourHelper;
import com.eztt.dtour.R;
import com.eztt.dtour.adapter.CommentAdapter;
import com.eztt.dtour.adapter.ImageAdapter;
import com.eztt.dtour.adapter.VideoAdapter;
import com.eztt.dtour.base.BaseActivity;
import com.eztt.dtour.bean.CommentListBean;
import com.eztt.dtour.bean.CommentUserBean;
import com.eztt.dtour.bean.CommentsBean;
import com.eztt.dtour.fragment.DynamicFragment;
import com.eztt.dtour.utils.EmojiUtils;
import com.eztt.dtour.utils.NineUtils;
import com.hyphenate.easeui.domain.EaseEmojicon;
import com.hyphenate.easeui.widget.EaseChatInputMenu;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;

import java.util.ArrayList;
import java.util.List;

import cn.jzvd.JZVideoPlayer;
import de.hdodenhof.circleimageview.CircleImageView;

public class DynamicDetail extends BaseActivity{

    public static final String TAG = DynamicDetail.class.getSimpleName();
    private RecyclerView commmentList;
    private CommentAdapter commentAdapter;
    private TextView UserName;
    private TextView Content;
    private CircleImageView Avatar;
    private RecyclerView Images;
    private TextView Location;
    private TextView Time;
    private TextView CommentNum;
    private TextView ThumbNum;
    private ImageView Likeimg;
    private ImageView commentimg;
    private EaseChatInputMenu inputMenu;
    private InputMethodManager inputManager;
    private ClipboardManager clipboard;
    private DisplayImageOptions options;
    private static final int main_comment_type = 0;//添加新的评论
    private static final int second_comment_type = 1;//点击评论字段发表二级评论
    private static final int third_comment_type = 2;//点击二级评论回复
    private int current_comment_location;
    private int Current_commentItem_location;
    private List<CommentsBean> temp_Datas;
    private int current_comment_type;

    List<CommentListBean> testlist;//评论列表的数据源
    @Override
    public int getLayoutId() {
        return R.layout.dynamic_comment_details;
    }

    @Override
    public void initViews() {
        inputMenu = findView(R.id.comment_input_menu);
        inputManager = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
        clipboard = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);
        getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
        testlist=new ArrayList<CommentListBean>() ;
        commentAdapter=new CommentAdapter(testlist,this);
        comm
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值