public void onBindViewHolder()

in AliRTC2.5/Android/RtcSample/app/src/main/java/com/aliyun/rtcdemo/adapter/ChartUserAdapter.java [37:112]


    public void onBindViewHolder(ChartViewHolder holder, int position) {
        holder.mScreenLayout.setVisibility(View.GONE);
        holder.mVideoLayout.setVisibility(View.GONE);
        if (mList.isEmpty()) {
            return;
        }
        ChartUserBean item = mMap.get(mList.get(position));
        //fill surface
        //如果没有surface则不显示
        holder.mSurfaceContainer.removeAllViews();
        holder.mScreenSurfaceContainer.removeAllViews();
        if (item == null) {
            return;
        }
        if (item.mCameraSurface != null) {
            holder.mVideoLayout.setVisibility(View.VISIBLE);
            //如果老的surfaceview还在之前的viewtree中,需要先移除
            ViewParent parent = item.mCameraSurface.getParent();
            if (parent != null) {
                if (parent instanceof FrameLayout) {
                    ((FrameLayout) parent).removeAllViews();
                }
                holder.mSurfaceContainer.removeAllViews();
            }
            holder.mSurfaceContainer.addView(item.mCameraSurface,
                    new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT));
        }



        if (item.mScreenSurface != null) {
            //如果老的surfaceview还在之前的viewtree中,需要先移除
            holder.mScreenLayout.setVisibility(View.VISIBLE);
            ViewParent parent = item.mScreenSurface.getParent();
            if (parent != null) {
                if (parent instanceof FrameLayout) {
                    ((FrameLayout) parent).removeAllViews();
                }
                holder.mScreenSurfaceContainer.removeAllViews();
            }
            holder.mScreenSurfaceContainer.addView(item.mScreenSurface,
                    new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT));
        }

        holder.mVideoFlip.setOnCheckedChangeListener(null);
        holder.mVideoFlip.setChecked(item.mIsCameraFlip);

        holder.mScreenFlip.setOnCheckedChangeListener(null);
        holder.mScreenFlip.setChecked(item.mIsScreenFlip);

        holder.mVideoFlip.setOnCheckedChangeListener((buttonView, isChecked) -> {
            if (mOnSubConfigChangeListener != null) {
                mOnSubConfigChangeListener.onFlipView(item.mUserId, CAMERA,isChecked);
            }
        });


        holder.mScreenFlip.setOnCheckedChangeListener((buttonView, isChecked) -> {
            if (mOnSubConfigChangeListener != null) {
                mOnSubConfigChangeListener.onFlipView(item.mUserId, SCREEN,isChecked);
            }
        });

        holder.mVideoMediaInfo.setOnClickListener(v -> {
            if (mOnSubConfigChangeListener != null) {
                mOnSubConfigChangeListener.onShowVideoInfo(item.mUserId,CAMERA);
            }
        });

        holder.mScreenMediaInfo.setOnClickListener(v -> {
            if (mOnSubConfigChangeListener != null) {
                mOnSubConfigChangeListener.onShowVideoInfo(item.mUserId,SCREEN);
            }
        });

    }