作者:壞小籽z_339 | 来源:互联网 | 2022-12-02 14:40
我有一个可滚动TextView
的用户可以选择文本.我通过设置移动方法来添加滚动条ScrollingMovementMethod
.
问题:除非应用程序暂停(例如,切换应用程序后),否则选择效果很好.一旦应用程序处于活动状态,选择将停止工作,并在日志中收到以下消息:
W/TextView:TextView不支持文本选择.选择取消.
我的设置:
我有一个Activity CoordinatorLayout
和一个TextView
包含在RelativeLayout
其中的片段,如下所示:
在Java代码中,我必须这样做:
textView.setMovementMethod(new ScrollingMovementMethod());
textView.setTextIsSelectable(true);
textView.setFocusable(true);
textView.setFocusableInTouchMode(true);
因为根据这个,这是唯一的工作方式,这和这个问题.
编辑:
问题出在以下调用中
textView.setMovementMethod(new ScrollingMovementMethod());
如果我删除它有效,但我无法理解.
重现问题的最小步骤:
1)TextView
使用以下布局创建一个空的Activity .
2)设置TextView
in onStart()
方法的可见性参数.
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
protected void onStart() {
super.onStart();
TextView textView = findViewById(R.id.text_view);
textView.setMovementMethod(new ScrollingMovementMethod());
textView.setTextIsSelectable(true);
textView.setFocusable(true);
textView.setFocusableInTouchMode(true);
}
}
3)尝试TextView
在暂停应用程序之前和之后使用上下文菜单.
编辑2:
删除setMovementMethod(new ScrollingMovementMethod())
解决了我的问题,之后功能很好.但是我不太清楚为什么它被添加了,我担心如果我删除它会制造一些东西.知道为什么人们可能会ScrollingMovementMethod
结合使用android:scrollbars="vertical"
.可能是xml在某些情况下不起作用?想法?我仍然对使用ScrollingMovementMethod
制动器选择功能感兴趣吗?