首页 > 解决方案 > 从 recyclerview 中的 textview 获取第一个可见行的文本

问题描述

您好,我正在处理一个项目。我需要在其中获得第一行可见的文本视图。这意味着当 textview 有 100 行并且用户滚动到 49 行时,我需要获取第 50 行的数据。

这是我的代码,但它不起作用我每次都得到第一行数据:

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);


        }
    });

标签: androidandroid-recyclerviewtextview

解决方案


推荐阅读