[Android] TextView에서 textIsSelectable 이 동작하지 않는 현상
1. TextView 내의 글자 선택하기
xml내에서 textIsSelectable을 true
로 설정해준다.
<TextView
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textIsSelectable="true"
android:text="Hello World!" />
java코드에서 setTextIsSelectable을 true
로 설정 해준다.
mTextView.setTextIsSelectable(true);
위 두가지 중 한가지만 적용해주면 TextView
의 글자를 선택해 복사 할 수 있다.
2. ListView(RecyclerView) 에서의 이슈
QA를 하던 중 TextView
의 글자를 선택할 수 없다는 말을 들었다. 처음에는 롱클릭이 잘 되지만, 스크롤을 내리면 텍스트를 선택할 수 없다는 것이었다.
3. 해결방법
TextView
를 상속받아서 View
가 attach되는 시점에 disable
-> enable
을 시켜주면 해결 된다.
(http://stackoverflow.com/a/38626276)
@Override
protected void onAttachedToWindow() {
super.onAttachedToWindow();
if (isTextSelectable()) {
// text selection is not working
// http://stackoverflow.com/a/38626276
boolean enabled = isEnabled();
if (enabled) {
setEnabled(false);
setEnabled(true);
}
}
}