android - 从 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);
}
});
解决方案
推荐阅读
- c++ - 使用 SFML 时出现内存或越界异常,这是什么问题?
- google-apps-script - 存储 Gmail 附件内容
- ruby-on-rails - 如何通过rails上的条目数获取具有精确has_many的记录
- r - R - 如何根据条件向量对存储在列表中的所有数据帧进行子集化
- spring-boot - 在spring boot中为keycloak中的公共url配置application.properties
- r - 当元素匹配列表时删除行
- node.js - 在编译/迁移合约后运行一个预言机(用 node.js 编写)
- sql-server - 如何在日志备份脚本中添加校验和?
- excel - Power Query - 特定文本的累积计数器(索引)
- react-native - 使用 React native 聚焦 WebView 中的输入