扩展的自定义view里包含的recyclerview设置itemDecoration后没有动画效果?

为了代码简洁一些,计划封装消息展示的布局,
使用constraintlayout进行扩展,自定义了一个组合控件布局,
其中包含recyclerview
代码中已为recyclerview设置了itemanimator
执行时发现没有使用itemanimator
没有动画效果。

不封装自定义布局,
直接在activity中操作,动画是可以正常生效的。

public class MessageView<T> extends ConstraintLayout {

    private RecyclerView messageListView;
    private ImageView redDotImg;
    private ImageView arrowImg;
    private BaseRecyclerViewAdapter adapter;
    private List<T> messages;
    boolean container_anim_flag;
    private RecyclerView.ItemAnimator animator;

    public MessageView(Context context) {
        this(context,null);
    }

    public MessageView(Context context, AttributeSet attrs) {
        this(context,attrs,0);
    }

    public MessageView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        initView(context);
    }

    private void initView(Context context) {
        LayoutInflater.from(context).inflate(R.layout.message_view, this, true);
        messageListView = findViewById(R.id.message_group_list_view);
        redDotImg = findViewById(R.id.red_dot);
        arrowImg = findViewById(R.id.arrow);

        setVisibility(View.GONE);
        redDotImg.setVisibility(View.GONE);
        arrowImg.setVisibility(View.GONE);

        messageListView.setLayoutManager(new LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false));
        //设置item动画
        messageListView.setItemAnimator(new SlideInDownAnimator());
        //设置item间隔
        messageListView.addItemDecoration(new MessageItemDecoration(20));
        messageListView.setOnTouchListener(new View.OnTouchListener() {
            @SuppressLint("ClickableViewAccessibility")
            @Override
            public boolean onTouch(View view, MotionEvent motionEvent) {

                ViewGroup viewGroup = (ViewGroup) view.getParent();
                return viewGroup.onTouchEvent(motionEvent);
            }
        });


    }
阅读 769
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题