【发布时间】:2019-11-25 10:40:01
【问题描述】:
该应用有一个屏幕,其中包含较大的 TextView 的 RecyclerView。每个 Textview 可以包含 2 - 100 行。是的,对于应用程序来说,这是一个很好的解决方案。
用户在 TextView 上有许多选项:singleTap、doubleTap 等。用户可以例如选择“文本选择”选项。然后执行以下代码:
aTextview.setOnTouchListener(null); // preventing the singletap, double tap action, works fine
aTextview.setFocusable(true);
aTextview.setLongClickable(true);
aTextview.setTextIsSelectable(true);
后一条语句将使 RecyclerView 滚动到当前文本视图的开始/顶部。假设用户要在当前textview的第55行选择单词,当开始选择文本时,recyclerview会在屏幕顶部滚动当前textview的第0行。这真的很烦人,因为这样用户将不得不再次搜索文本(在第 55 行)以进行选择(以及复制、粘贴等)。
当我删除“setTextIsSelectable”语句时,没有滚动。
如何防止“setTextIsSelectable”开始滚动到文本视图的开头?
更新:解决方案是使用recyclerView。setLayoutFrozen(true); ...然后解冻recyclerView。这种解决方案的缺点是 textSelection 不能超出屏幕,因为没有滚动;-)
【问题讨论】:
标签: android android-recyclerview