应用平滑自动滚动时,RecyclerView项目无法点击

时间:2018-06-17 20:21:57

标签: android-recyclerview

我正在使用此方法让我的recyclerview项目顺利滚动,它就像魅力一样,但是,它会导致recyclerview内的项目由于某种原因不响应点击事件。  这是我用来实现滚动效果的方法:

   public void autoScrollAdsList(){
    final int scrollSpeed =80;   // Scroll Speed in Milliseconds
     handler = new Handler();
     runnable = new Runnable() {
        int x = 15;        // Pixels To Move/Scroll
        boolean flag = true;
        // Find Scroll Position By Accessing RecyclerView's LinearLayout's Visible Item Position
        int scrollPosition = MyManager.findFirstVisibleItemPosition();
        int arraySize = mAdsList.size();  // Gets RecyclerView's Adapter's Array Size

        @Override
        public void run() {
            if (scrollPosition < arraySize) {
                if (scrollPosition == arraySize - 1) {
                    flag = false;
                } else if (scrollPosition <= 1) {
                    flag = true;
                }
                if (!flag) {
                    try {
                        // Delay in Seconds So User Can Completely Read Till Last String
                        TimeUnit.SECONDS.sleep(1);
                        mAdsRCV.scrollToPosition(0);  // Jumps Back Scroll To Start Point
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
                // Know The Last Visible Item
                scrollPosition = MyManager.findLastCompletelyVisibleItemPosition();

                mAdsRCV.smoothScrollBy(x, 0);
                handler.postDelayed(this, scrollSpeed);
            }
        }
    };
    handler.postDelayed(runnable, scrollSpeed);
}

这是我在适配器中注册clickevents的地方:

    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType){

        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.element_annonce_search_horiz,parent,false);
        v.setOnClickListener(new MyRecyItemClickLisetner());

        return new MyViewHolder(v);}

除了实现相应接口的内部类之外:

     class MyRecyItemClickLisetner implements  View.OnClickListener{
    public void onClick(View v){
        TextView t = v.findViewById(R.id.HiddenAdId);
        int id =Integer.parseInt(t.getText().toString());
        Intent i = new Intent(getActivity(),AdDetails.class);
        Bundle b = new Bundle();
        b.putInt("Ad ID",id);
        i.putExtras(b);
        startActivity(i);


    }

我该如何解决这个问题?

0 个答案:

没有答案