TextView does not support text selection. Action mode cancelled.
这貌似是一个 Android platform 的已知bug,解决起来也很简单。
1. 在adapter中重写onViewAttachedToWindow方法
@Override
protected void onViewAttachedToWindow(RecyclerView.ViewHolder holder) {
super.onViewAttachedToWindow(holder);
holder.textView.setEnabled(false);
holder.textView.setEnabled(true);
}
2. 在TextView中重写onAttachedToWindow方法
@Override
protected void onAttachedToWindow() {
super.onAttachedToWindow();
this.setEnabled(false);
this.setEnabled(true);
}
public class MyEditText extends EditText {
private boolean mEnabled; // is this edittext enabled
public MyEditText(Context context) {
super(context);
}
public MyEditText(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyEditText(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void onAttachedToWindow() {
super.onAttachedToWindow();
try {
if (!mEnabled) return;
super.setEnabled(false);
super.setEnabled(mEnabled);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void setEnabled(boolean enabled) {
this.mEnabled = enabled;
super.setEnabled(enabled);
}}