Я хочу, чтобы видео останавливалось при прокрутке экрана вверх. Для этого я использую addOnScrollListener.
public boolean scrolldurum;
rv.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
// mScrollState = scrollState;
if(newState == RecyclerView.SCROLL_STATE_IDLE ) {
Toast.makeText(getActivity(),"scrol stop",Toast.LENGTH_SHORT).show();
scrolldurum = false;
Log.e("scrolldurumburcu", String.valueOf(scrolldurum));
}
if(newState == RecyclerView.SCROLL_STATE_DRAGGING ) {
Toast.makeText(getActivity(),"scrol START",Toast.LENGTH_SHORT).show();
scrolldurum = true;
Log.e("scrolldurumburcu", String.valueOf(scrolldurum));
}
super.onScrollStateChanged(recyclerView, newState);
}
});
Моя логическая переменная имеет значение true, когда экран прокручивается, и false, когда он останавливается. Но код остановки видео работает только в onBindViewHolder.
@Override
public void onBindViewHolder(final KelimelerAdapterx.CardTasarimTutucu holder, int position) {
final Kelimeler kelime = kelimelerListe.get(position);
holder.textViewIngilizce.setText(kelime.getAkis());
holder.textViewTurkce.setText(kelime.getLikebtn());
if (scrolldurum = true){
Log.e("xaxaxaxax", String.valueOf(scrolldurum));
holder.videoView.pause();
}
if (scrolldurum = false){
Log.e("xaxaxaxax", String.valueOf(scrolldurum));
}
holder.videoView.setErrorTracker(new SimpleVideoView.VideoPlaybackErrorTracker() {
@Override
public void onPlaybackError(Exception e) {
e.printStackTrace();
// Snackbar.make(holder.videoView, "Uh oh, error playing!", Snackbar.LENGTH_INDEFINITE).show();
holder.videoView.start("https://goldgym.pro/imga/"+holder.textViewTurkce.getText().toString());
holder. videoView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if ( holder.videoView.isPlaying()) {
holder.videoView.pause();
}
else{
holder.videoView.play();
}
}
});
}
});
holder.videoView.start("https://goldgym.pro/imga/"+holder.textViewTurkce.getText().toString());
holder. videoView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if ( holder.videoView.isPlaying()) {
Log.e("scrolldurumburcussss", String.valueOf(scrolldurum));
holder.videoView.pause();
} else {
holder.videoView.play();
}
}
});
}
Моей логической переменной нужен слушатель. Как мне это сделать. если вы хотите просмотреть мой полный код. https://gist.github.com/prensmiskin/161741f6e497a9d624258bedbddfd9d8
