我可以在TextViews中使用Spannable来创建不同外观,下划线,删除线等的跨度。我怎么能做同样的改变线包装行为?特别是,我不想让一个电子邮件地址在中间环绕,我希望它能像一个词一样行事。改变换行行为
我试过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)
没有看,因为我想最多两行。我只想把电子邮件地址作为一个单词包装在一起。 – pforhan
道歉,我以前不明白。现在让你更有意义为什么你试图用spannable做到这一点。 :) – Barak