3

I have 2 recycleviews. When I click on the firstrecycleview Items, the subcategory of clicked item will show on second category . for this purpose I make a customized RecyclerItemClickListener as below .

public class RecyclerItemClickListener implements RecyclerView.OnItemTouchListener {
private OnItemClickListener mListener;

public interface OnItemClickListener {
    void onItemClick(View view, int position);

    void onLongItemClick(View view, int position);
}

GestureDetector mGestureDetector;

public RecyclerItemClickListener(Context context, final RecyclerView recyclerView, OnItemClickListener listener) {
    mListener = listener;
    mGestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() {
        @Override
        public boolean onSingleTapUp(MotionEvent e) {
            return true;
        }

        

        @Override
        public void onLongPress(MotionEvent e) {
            View child = recyclerView.findChildViewUnder(e.getX(), e.getY());
            if (child != null && mListener != null) {
                mListener.onLongItemClick(child, recyclerView.getChildAdapterPosition(child));
            }
        }
    });
}

@Override
public boolean onInterceptTouchEvent(RecyclerView view, MotionEvent e) {
    View childView = view.findChildViewUnder(e.getX(), e.getY());
    if (childView != null && mListener != null && mGestureDetector.onTouchEvent(e)) {
        mListener.onItemClick(childView, view.getChildAdapterPosition(childView));
        return true;
    }
    return false;
} 
}

and use it on my activity as below :

firstRecyclerView.addOnItemTouchListener(
                new RecyclerItemClickListener(getActivity(), firstRecyclerView ,new RecyclerItemClickListener.OnItemClickListener() {
                    @Override public void onItemClick(View view, int position) {

                        switch (position){
                            case 0 :
                                input = "29";
                                break;

                            case 1 :
                                input = "30";
                                break;

                            case 2 :
                                input = "38";
                                break;

                        }
                       
                        setSecondRecyclerViewAdapter(input);
                    }

                })
        );

and everything works fine . but I have problem with voice assistant(screen reader or talkback ). I don't know the name. When I active voice assistant and click on firstRecyclerview items, nothing happens and secondCategory items is not showing as expected. What should I do to make it compatible with voice assistant and force it to get click on item and show subcategories items on second recyclerview?

react_or_angluar
  • 1,568
  • 2
  • 13
  • 20

0 Answers0