java - 刷新 RecyclerView 中的数据并保持其滚动位置将用户带到 Activity 的顶部

标签 java android

我正在尝试实现像 Instagram 这样的应用程序,用户可以在其中点赞和分享,但是当他按下按钮(如心形图像)时。

///interface to get position
@Override
public void onitemclick(int position) {

     position_of_image=position;
    int num1=uploads.get(position_of_image).getNumber_likes();
    uploads.get(position_of_image).setNumber_likes(num1+1);

   String id=uploads.get(position_of_image).getId();
   int number= uploads.get(position_of_image).getNumber_likes();
   String name= uploads.get(position_of_image).getName();
   String url=uploads.get(position_of_image).getImageUrl();

   //updating the tables

   Map<String,Object> map=new HashMap<>();
   map.put(id,new Upload(name,url,number,id));
//  mDatabaseRef.child(id).child("number_likes").setValue(number);
    uploads.clear();
    mDatabaseRef.updateChildren(map);
    mRecyclerView.smoothScrollToPosition(position_of_image);
}

**这是我在适配器中点击时的界面,我想让 btn 变成红色,它完成了,但很快就消失了 **

 @Override
        public void onClick(View v) {
        if (mlistener!=null){
            int position=getAdapterPosition();
            if (position!=RecyclerView.NO_POSITION){
                mlistener.onitemclick(position);

            }
           like.setImageResource(R.drawable.red_heart);

        }


public interface  onlikeclic{
        void onitemclick(int position);


    }
    public void setonitemclicklistener(onlikeclic listener){
        mlistener=listener;
    }

最佳答案

单击项目时,使用调用 RecyclerViewsmoothScrollToPosition(0) 方法。

您可以在 this answer 中查看示例.

关于java - 刷新 RecyclerView 中的数据并保持其滚动位置将用户带到 Activity 的顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61070883/

相关文章:

Java:方法语句执行无序

android - 将文件上传到 Firebase 存储并获取 downloadUrl。如何在 Kotlin 函数中返回结果?

android - 位置监听器在 Debug模式下工作但不在编译的 APK 中

java - 预定定时器阻塞自身

java - hibernate @ManyToOne "Target Entity is not defined"

java - 在 if 语句中询问图像名称

android - 在带有文本的按钮中缩放 drawableLeft

android - Xamarin android 找不到 id 字段

java - TYPE_SCROLL_SENSITIVE 和 TYPE_FORWARD_ONLY 的区别

java - 添加到 JFrame 时 KeyListeners 没有响应