我可以在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