특정 위젯에 대한 사용자 입력을 통해 이미지 스팬 입력을 지원하고 이상한 문제가 발생하는 EditText 클래스를 사용하고 있습니다. 이미지 스팬이 줄 끝 부분에 나타나면 다음 줄로 넘어가는 경우 이미지 스팬이 더 이상 보이지 않게됩니다.다음 줄로 넘어갈 때 EditText + ImageSpan이 사라짐
내가 입력을 마친 후 "작동하지 않습니다." 편집 텍스트는 다음과 같이 나타납니다 :
기본적으로 다중 행 편집 텍스트에서 다음 행으로 이동하는 것과 관련하여 이미지 스팬이 편집 텍스트에 의해 올바르게 처리되지 않는 것으로 보입니다. 이월 된 후에는 사용자에게 보이지 않습니다. 두 번째 이미지의 내용을 첫 번째 이미지 ("n"까지)와 똑같이 보일 때까지 되돌릴 수 있고 이미지 스팬을 다시 볼 수 있습니다.
누구든지이 문제를 해결하기 위해 무엇을 할 수 있는지 알고 있습니까? 내 응용 프로그램에서 계속 유지하고자하는 중요한 구성 요소입니다. 또한 한 줄 편집 텍스트로 대체 할 수 없으며 여러 줄 문자 지원도 중요합니다.
public void appendSpannedText(String s){
if (textToDrawableMap == null || textToDrawableMap.isEmpty()
|| !textToDrawableMap.containsKey(s)) {
return;
}
// Acquire the mapped drawable
Drawable drawable = textToDrawableMap.get(s);
Editable editable = getText();
int start = getSelectionStart();
// Insert the a space at the start that's eaten by the image span
// being set.
editable = editable.insert(start, SPACE);
// Insert the new string at the starting point
SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder(editable);
// Create the span and set the new span to the appropriate range
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
ImageSpan span = new ImageSpan(drawable, ImageSpan.ALIGN_BASELINE);
int nextIdx = start + 1;
spannableStringBuilder.setSpan(span,
start, nextIdx,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
// Update the spanned text and the cursor
setText(spannableStringBuilder);
setSelection(nextIdx);
}
난 그냥 사용자가 누를 수있는 몇 가지 아이콘이하고 삽입을 통해 사용자 정의 편집 텍스트에 이미지 범위입니다 : 재현성
, 여기에 내 텍스트를 편집에 ImageSpan를 추가하는 내 코드입니다 spannable. 내가 지원하는 텍스트 -> 드로어 블 매핑을 사용하므로 사용자가 특정 버튼을 눌렀을 때 어느 것을 사용할 지 알 수 있습니다. 주된 것은 edittext에 이미지 판이 있다면 트리거되었을 때 새로운 라인에서 보이지 않게 될 수 있다는 것입니다. setSpan 전에
해결책을 찾았습니까? 나는 똑같은 문제를 겪고있다. 나는 여기에이 해결책을 원합니다. – rawcoder064
@ rawcoder064 [link] (https://github.com/maxsav/spantest) –
문제를 해결했습니다. 문제는 첫 번째 및 마지막 공백을 텍스트보기로 트리밍하는 것이 었습니다. 공간 대신 문자를 추가하면 해결됩니다. 어쨌든 고마워. – rawcoder064