0

Hello I am working with one project. In which i need to get first visible line of text view. It means when textview has 100 lines and user has scrolled up to 49 lines then i need to get data of line number 50.

Here is my code but its not working i am getting first line data everytime:

recyclerView.setOnScrollListener(new RecyclerView.OnScrollListener() {
        @Override
        public void onScrolled(final RecyclerView recyclerView, int dx, int dy) {
            super.onScrolled(recyclerView, dx, dy);
            LinearLayoutManager layoutManager = ((LinearLayoutManager) recyclerView.getLayoutManager());
            int firstVisiblePosition = layoutManager.findFirstVisibleItemPosition();

            textView = ((RewardTransactionsAdapter.MyViewHolder) recyclerView.
                    findViewHolderForLayoutPosition(firstVisiblePosition))
                    .itemView.findViewById(R.id.textViewRTTitle);

            Rect r1 = new Rect();
            recyclerView.getHitRect(r1);//gets visible rect of textview
            Layout l = textView.getLayout();
            int line = l.getLineForVertical(-1 * r1.top);//first visible line
            int start = l.getLineStart(line);//visible line start
            int end = l.getLineEnd(line);//visible line end

            String displayed = textView.getText().toString().substring(start, end);
            Log.i("TAG", displayed);


        }
    });
Kishan Dhamat
  • 3,746
  • 2
  • 26
  • 36

0 Answers0