我正在使用 Recycleview 在 Horizontal RecyclerView 中显示联系人图像和姓名,并且加载正常。我已经实现了 Click 监听器,单击监听器会打开新 Activity ,并根据 RecyclerView 的位置显示详细信息。
但我希望 RecyclerView 自动滚动,以便每 5 秒,recycleview 自动滚动一次,我实现了下面的代码,它工作正常。
top.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
int lastItem = llm.findLastCompletelyVisibleItemPosition();
if(lastItem == llm.getItemCount()-1){
mHandler.removeCallbacks(SCROLLING_RUNNABLE);
Handler postHandler = new Handler();
postHandler.postDelayed(new Runnable() {
@Override
public void run() {
top.setAdapter(null);
top.setAdapter(staggeredBooksAdapter);
mHandler.postDelayed(SCROLLING_RUNNABLE, 5000);
}
}, 5000);
}
}
});
mHandler.postDelayed(SCROLLING_RUNNABLE, 5000);
但是现在,当我单击任何联系人时,不会像以前那样发生任何事情,即使用用户详细信息启动新 Activity 。但是当我删除滚动监听器时,我可以再次单击 RecyclerView 项目。
我的 RecyclerView 是
final LinearLayoutManager llm = new LinearLayoutManager(getActivity(),LinearLayoutManager.HORIZONTAL,false);
top.setLayoutManager(llm);
top.setHasFixedSize(true);
staggeredBooksAdapter = new TopAdapter(this, bookslist);
top.setAdapter(staggeredBooksAdapter);
适配器类是
@Override
public void onBindViewHolder(final MyViewHolder holder, final int position) {
database = FirebaseDatabase.getInstance();
g = bookslist.get(position);
holder.teacher_location.setText(g.getBlocas());
holder.teacher_name.setText(g.getSellername());
holder.profile_details.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
g = bookslist.get(position);
Intent intent = new Intent(v.getContext(), gender_details.class);
intent.putExtra(KEY_IMAGE, g.getPics());
v.getContext().startActivity(intent);
}
});
我该如何解决这个问题..提前致谢。
最佳答案
添加this类到您的项目,然后添加以下代码:
recyclerView.addOnItemTouchListener(new RecyclerItemClickListener(
this, top, new RecyclerItemClickListener.OnItemClickListener() {
@Override
public void onItemClick(View view, int position) {
Log.i("recyclerView ", "onItemClick " + position);
}
@Override
public void onLongItemClick(View view, int position) {
Log.i("recyclerView ", "onLongItemClick " + position);
}
}));
让我知道它是否有效。
关于java - 在 RecyclerView 滚动监听器中实现单击监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57379168/