回收器视图在出现键盘时滚动调用



>我在活动A中有回收器视图,用于在滚动时自动播放视频。所以我将 onScrollListener 添加到活动 A 的回收器视图中。 一切正常,但

  1. 我从活动 A 启动另一个活动 B

  2. 键盘显示在活动 B 上

  3. on回收器的滚动方法查看活动 A 被调用。

结果,视频开始在后台的活动A上播放。任何想法,如何阻止这种情况?

以下是这两个活动的代码。

活动A

private RecyclerView recyclerView;
private ExoVideosAdapter exoVideosAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn=findViewById(R.id.btnB);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(MainActivity.this,secondActivity.class));
}
});
exoVideosAdapter=new ExoVideosAdapter();
recyclerView=findViewById(R.id.rv);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
Log.d("rvA","onScrollStateChanged");
}
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
Log.d("rvA","onScrolled");
}
});
recyclerView.setAdapter(exoVideosAdapter);
}

}

活动 B 只有一个编辑文本

public class secondActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
}}

您可以注意的一些要点:

  1. 在呼叫intent到另一个活动 B 时停止onScrollListener
  2. 如果不想保持向后兼容性,可以在调用活动 B 的 Intent 时finish活动 A。
  3. Stop,您在Activity A goes in backgroundonPauseonStop时播放视频一样进行处理。

希望这有帮助。

这种奇怪行为的原因是为您的应用程序使用半透明主题。一旦我删除了半透明标签,它就停止调用回收器后台活动的滚动监听器视图。

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:windowIsTranslucent">true</item>
</style>

最新更新