我知道android:textIsSelectable="true"在xml 中设置TextView将显示本机文本选择弹出窗口,我一直在我的应用程序中使用它.但是当我尝试在附加到视图中的视图中设置相同属性时,我发现它不再起作用了RecyclerView.每当我尝试选择文本时,会出现以下日志 -
TextView: TextView does not support text selection. Action mode cancelled.
Run Code Online (Sandbox Code Playgroud)
我不知道为什么?为什么它适用于其他屏幕而不是 RecyclerView.我看了很多帖子 -
带有android的TextView:textIsSelectable ="true"在listview中不起作用
textview textIsSelectable ="true"在Listview中不起作用
对于ListView中的TextView,android:textIsSelectable ="true"不起作用
但后来我遇到了这篇帖子 -
Android:"TextView不支持文本选择.操作模式已取消"
回复@hungkk给我工作.他的建议的解决方案的TextView宽度改变为wrap_content从match_parent.
我知道我可以这样做,但我的问题是如何解决这个问题,因为它看起来很奇怪.而且,如果我想保持宽度,解决方案是什么match_parent.
欢迎提出任何意见.
经过漫长而耗时的搜索,我找不到一个可以在textview中为android API级别<= 11选择文本的组件.我写过这个可能对你有所帮助的组件:
public class SelectableTextView extends TextView {
public static int _SelectedBackgroundColor = 0xffA6D4E1;
public static int _SelectedTextColor = 0xff000000;
private OnTouchListener lastOnTouch;
protected int textOffsetStart;
protected int textOffsetEnd;
private OnLongClickListener lastOnLongClick;
protected boolean longCliked;
protected boolean isDowned;
protected int textSelectedEnd;
protected int textSelectedStart;
private static SelectableTextView lastInstance;
public SelectableTextView(Context context) {
super(context);
}
public void setTextIsSelectable(boolean selectable) {
// TODO:ANDROID3
// if:androidversion>=3
// super.setTextIsSelectable(selectable);
// else
super.setLongClickable(true);
super.setOnLongClickListener(getSelectableLongClick());
super.setOnTouchListener(getSelectableOnTouch());
}
private OnLongClickListener getSelectableLongClick() {
return new OnLongClickListener() { …Run Code Online (Sandbox Code Playgroud)