Tôi có thể sử dụng Spannable trong TextViews để tạo các nhịp có hình dạng khác nhau, gạch dưới, gạch ngang và các kiểu như vậy. Làm thế nào tôi có thể làm tương tự để thay đổi hành vi gói hàng? Đặc biệt, tôi không muốn một địa chỉ email để bọc ở giữa, tôi muốn nó hoạt động như một từ.Thay đổi hành vi quấn dòng
Tôi đã thử WrapTogetherSpan, nhưng tôi không thể làm cho nó hoạt động. Có vẻ như nó chỉ được sử dụng bởi DynamicLayout và tôi không thể ép TextView sử dụng 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"
/>
Làm thế nào tôi đang thiết lập các 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)
Không, bởi vì tôi muốn lên đến hai dòng. Tôi chỉ muốn địa chỉ email kết hợp với nhau thành một từ. – pforhan
Xin lỗi, tôi không hiểu điều đó trước đây. Làm cho nhiều ý nghĩa hơn bây giờ lý do tại sao bạn đã cố gắng để làm điều đó với một spannable. :) – Barak