自动移动到Recyclerview中的下一行

时间:2016-04-04 10:09:17

标签: android android-recyclerview

我希望焦点自动移动到Recyclerview中的下一行位置。我的Recyclerview包含videoview。在媒体完成时,我希望播放下一个视频.Videoview正在播放下一个视频,但仅限于第一个视频视频

private static int position= 0;
public static class ViewHolder extends RecyclerView.ViewHolder {
  private VideoView videoView;          
  view.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
      position= getAdapterPosition();
      //recyclerView.smoothScrollToPosition(position);
      Log.d("TAG_LIST", "Element " + position+ " clicked.");
    }
  });
} 
holder.videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
  @Override
  public void onCompletion(MediaPlayer mp) {
    //recyclerView.smoothScrollToPosition(position);
    Video(holder);
  }
});

private void Video(ViewHolder holder) {
  if (++position>= items.size()) {
    // Last song, just reset position
    position= 0;
  } else {
    // Play next song
    recyclerView.smoothScrollToPosition(position);
    AsyncTask task = new AsyncTask (items.get(position).getUrl(), holder,position);
    task.execute(items.get(position).getUrl());
  }
}

1 个答案:

答案 0 :(得分:0)

您没有发布与您的问题相关的任何代码,但我可以为您推荐一些方法。

  1. RecyclerView上找到第一个可见的项目位置,然后在VideoView
  2. 处开始播放视频
  3. RecyclerView上收听滚动更改,当第一个可见项目索引发生变化时,停止播放视频,然后启动下一个RecyclerViewVideoView