RecyclerView自动滚动

https://www.cnblogs.com/wangjiaghe/p/7278443.html
核心

Runnable scrollRunnable;

 scrollRunnable = new Runnable() {
                        @Override
                        public void run() {
                            recyclerview.scrollBy(3, 0);
                            mHandler.postDelayed(scrollRunnable, 10);
                        }
                    };
                    mHandler.postDelayed(scrollRunnable, 10);
package com.ruhai.yibei.test;

import android.annotation.SuppressLint;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.View;
import android.widget.Toast;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import com.alibaba.fastjson.JSON;
import com.ruhai.yibei.Constant;
import com.ruhai.yibei.R;
import com.ruhai.yibei.bean.ProductHomePageBean;

import org.xutils.common.Callback;
import org.xutils.http.RequestParams;
import org.xutils.x;

import java.util.ArrayList;
import java.util.List;

public class RecyclerViewTest1Activity extends AppCompatActivity implements RecyAdapter.OnItemClickListener {
    private String TAG = "HorizontalActivity";


    private RecyclerView recyclerview;


    private RecyAdapter recyAdapter;
    private Handler mHandler = new Handler();
    private LinearLayoutManager layoutManager;


    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_recycler_view_test1);
        recyclerview = (RecyclerView) findViewById(R.id.recyclerview);
        initData();

    }


    Runnable scrollRunnable;

    private void initData() {


        RequestParams params1 = new RequestParams(Constant.appProductHomePage);
//                            RequestParams params1 = new RequestParams(Constant.serviceClassId);
        params1.addHeader("Authorization", Constant.authorization);
        params1.addHeader("language", "zh_CN");
//                            params1.addBodyParameter("pageSize",12);
//                            params1.addBodyParameter("currentPage",1);
//                            params1.addBodyParameter("serviceClassId",classificationId);
        params1.setAsJsonContent(true);


        x.http().get(params1, new Callback.CommonCallback<String>() {
            @SuppressLint("ResourceAsColor")
            @Override
            public void onSuccess(String result) {
                Log.e("wy", "onSuccess result: " + result);
                ProductHomePageBean professionInfo = JSON.parseObject(result, ProductHomePageBean.class);
                Log.e("wy", "onSuccess professionInfo: " + professionInfo.getData().getAppProductHomePageHotProductVOList().size());

                if (professionInfo.getCode().equals("00000000")) {
//AppProductHomePageHotProductVOListDTO
                    recyAdapter = new RecyAdapter(RecyclerViewTest1Activity.this, professionInfo.getData().getAppProductHomePageHotProductVOList());
                    recyAdapter.setOnItemClickListener(RecyclerViewTest1Activity.this);
                    layoutManager = new LinearLayoutManager(RecyclerViewTest1Activity.this);
                    layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
                    recyclerview.setLayoutManager(layoutManager);
                    recyclerview.setAdapter(recyAdapter);
                    scrollRunnable = new Runnable() {
                        @Override
                        public void run() {
                            recyclerview.scrollBy(3, 0);
                            mHandler.postDelayed(scrollRunnable, 10);
                        }
                    };
                    mHandler.postDelayed(scrollRunnable, 10);

                } else {
                    Toast.makeText(x.app(), professionInfo.getMsg(), Toast.LENGTH_LONG).show();
                }


            }

            @Override
            public void onError(Throwable ex, boolean isOnCallback) {
                Log.e("wy", "132result: " + ex.getMessage());
            }

            @Override
            public void onCancelled(CancelledException cex) {
                Toast.makeText(x.app(), "cancelled", Toast.LENGTH_LONG).show();
            }

            @Override
            public void onFinished() {

            }
        });


    }

    @Override
    protected void onResume() {
        super.onResume();
        mHandler.postDelayed(scrollRunnable, 10);
    }

    @Override
    protected void onStop() {
        super.onStop();
        mHandler.removeCallbacks(scrollRunnable);
    }

    @Override
    public void onItemClick(View view, int tag) {
        Toast.makeText(this, "第" + tag + "张图片被点击了", Toast.LENGTH_SHORT).show();
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值