Я могу использовать Spannable в TextViews для создания промежутков с различными внешними, подчеркивающими, зачеркиваниями и т.д. Как я могу сделать то же самое, чтобы изменить поведение переноса строк? В частности, я не хочу, чтобы адрес электронной почты был закрыт посередине, я хочу, чтобы он действовал как одно слово.
Я попробовал WrapTogetherSpan, но я не мог заставить его работать. Похоже, что он используется только DynamicLayout, и я не мог заставить TextView использовать DynamicLayout.
<TextView
android:id="@+id/merchant_email_field"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="@dimen/account_setting_email"
android:gravity="center"
android:bufferType="spannable"
android:maxLines="2"
android:ellipsize="end"
/>
Как я устанавливаю spannable:
WrapTogetherSpan TOGETHER_SPAN = new WrapTogetherSpan() {};
String collectedString = getString(R.string.email_sentence, userEmail);
int emailOffset = collectedString.indexOf(userEmail);
Spannable emailSpannable = Spannable.Factory.getInstance()
.newSpannable(collectedString);
emailSpannable.setSpan(TOGETHER_SPAN, emailOffset,
emailOffset + userEmail.length(),
Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
textView.setText(emailSpannable)