1.mCommonRecyclerView.addOnChildAttachStateChangeListener(this);
mCommonRecyclerView.addOnChildAttachStateChangeListener(this);
通过重写onChildViewAttachedToWindow与onChildViewDetachedFromWindow方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
| @Override public void onChildViewAttachedToWindow(View view) { int index = mCommonRecyclerView.getChildAdapterPosition(view); if (index >= 0) { int itemViewType = mCommonRecyclerView.getAdapter().getItemViewType(index); if (itemViewType == 4 || itemViewType == 7) { view.findViewById(R.id.showview).setVisibility(View.VISIBLE); if (index == position) { FrameLayout frameLayout = view.findViewById(R.id.layout_video); frameLayout.removeAllViews(); if (mVideoItemView != null && ((mVideoItemView.isCurrentPlay()) || mVideoItemView.currentState == JZVideoPlayer.CURRENT_STATE_PAUSE || mVideoItemView.currentState == JZVideoPlayer.CURRENT_STATE_PREPARING)) { view.findViewById(R.id.showview).setVisibility(View.GONE); } if (mVideoItemView.currentState == JZVideoPlayer.CURRENT_STATE_PAUSE) { if (mVideoItemView.getParent() != null) ((ViewGroup) mVideoItemView.getParent()).removeAllViews(); frameLayout.addView(mVideoItemView); return; } if (mSmallLayout.getVisibility() == View.VISIBLE && mVideoItemView != null && (mVideoItemView.isCurrentPlay() || mVideoItemView.currentState == JZVideoPlayer.CURRENT_STATE_PREPARING)) { mSmallLayout.setVisibility(View.GONE); mVideoLayout.removeAllViews(); frameLayout.addView(mVideoItemView); } } } } }
@Override public void onChildViewDetachedFromWindow(View view) { int index = mCommonRecyclerView.getChildAdapterPosition(view); if (index >= 0) { int itemViewType = mCommonRecyclerView.getAdapter().getItemViewType(index); if (itemViewType == 4 || itemViewType == 7) { if (index == position) { FrameLayout frameLayout = view.findViewById(R.id.layout_video); frameLayout.removeAllViews(); if (mSmallLayout.getVisibility() == View.GONE && mVideoItemView != null && (mVideoItemView.isCurrentPlay() || mVideoItemView.currentState == JZVideoPlayer.CURRENT_STATE_PREPARING)) {
mSmallLayout.setVisibility(View.VISIBLE); mVideoLayout.removeAllViews(); mVideoLayout.addView(mVideoItemView); } } } } }
private void playVideoForSmallOrFull(int position) { INewsyunBaseFragment.this.position = position; if (!ListUtils.isEmpty(mCommonList) && position != -1) { String contentId = String.valueOf(mCommonList.get(position).getContentId()); }
if (mVideoItemView.currentState == JZVideoPlayer.CURRENT_STATE_PAUSE || mVideoItemView.currentState == JZVideoPlayer.CURRENT_STATE_PLAYING) { if (position != lastPosition) { JZVideoPlayer.releaseAllVideos(); } }
if (mSmallLayout.getVisibility() == View.VISIBLE) { mSmallLayout.setVisibility(View.GONE); mVideoLayout.removeAllViews(); }
if (lastPosition != -1) { ViewGroup last = (ViewGroup) mVideoItemView.getParent(); if (last != null) { last.removeAllViews(); View itemView = (View) last.getParent(); if (itemView != null) { itemView.findViewById(R.id.showview).setVisibility(View.VISIBLE); } } }
View view = mCommonRecyclerView.findViewHolderForAdapterPosition(position).itemView; FrameLayout frameLayout = view.findViewById(R.id.layout_video); frameLayout.removeAllViews(); frameLayout.addView(mVideoItemView); mVideoItemView.setUp(mCommonList.get(position).getContentVideo(), JZVideoPlayerStandard.SCREEN_WINDOW_NORMAL, ""); mVideoItemView.startVideo(); lastPosition = position; }
|
- 视频播放功能实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| private void playVideoForSmallOrFull(int position) { INewsyunBaseFragment.this.position = position; if (!ListUtils.isEmpty(mCommonList) && position != -1) { String contentId = String.valueOf(mCommonList.get(position).getContentId()); }
if (mVideoItemView.currentState == JZVideoPlayer.CURRENT_STATE_PAUSE || mVideoItemView.currentState == JZVideoPlayer.CURRENT_STATE_PLAYING) { if (position != lastPosition) { JZVideoPlayer.releaseAllVideos(); } }
if (mSmallLayout.getVisibility() == View.VISIBLE) { mSmallLayout.setVisibility(View.GONE); mVideoLayout.removeAllViews(); }
if (lastPosition != -1) { ViewGroup last = (ViewGroup) mVideoItemView.getParent(); if (last != null) { last.removeAllViews(); View itemView = (View) last.getParent(); if (itemView != null) { itemView.findViewById(R.id.showview).setVisibility(View.VISIBLE); } } }
View view = mCommonRecyclerView.findViewHolderForAdapterPosition(position).itemView; FrameLayout frameLayout = view.findViewById(R.id.layout_video); frameLayout.removeAllViews(); frameLayout.addView(mVideoItemView); mVideoItemView.setUp(mCommonList.get(position).getContentVideo(), JZVideoPlayerStandard.SCREEN_WINDOW_NORMAL, ""); mVideoItemView.startVideo(); lastPosition = position; }
|
- 关闭视频播放的操作
1 2 3 4 5 6 7 8 9 10 11 12
|
public void closePlayer() { if (mVideoItemView.isCurrentPlay() || mSmallLayout.getVisibility() == View.VISIBLE || mVideoItemView.currentState == JZVideoPlayer.CURRENT_STATE_PAUSE || mVideoItemView.currentState == JZVideoPlayer.CURRENT_STATE_PLAYING) { mVideoLayout.removeAllViews(); mSmallLayout.setVisibility(View.GONE); } JZVideoPlayer.releaseAllVideos(); mCommonAdapter.notifyDataSetChanged(); }
|