Tôi có một bản xem văn bản rằng tôi đang lập trình thiết lập maxLines bằng và sau đó đặt nó thành android: ellipsize = "end". Nó hoạt động một phần, nhưng vì lý do nào đó, văn bản được cắt ngắn tiếp tục cho một vài ký tự sau dấu ba chấm trong 4.2.2. Đây là văn bản thực tế đang bị cắt ngắn, không phải là ký tự mới.android: ellipsize trong văn bản ICS tiếp tục sau dấu ba chấm
Nó cũng không hoạt động bình thường trong 2.3.6 vì nó thêm dấu ba chấm cho mỗi phần có ngắt dòng hoặc "\ n".
Tôi không sử dụng bất kỳ phông chữ tùy chỉnh nào, tôi đã thấy rằng đã gây ra sự cố trước đây.
Đây là nơi tôi tính toán và thiết lập các Maxlines:
final TextView reviewView = (TextView) view.findViewById(R.id.textViewPosition3);
ViewTreeObserver observer = reviewView.getViewTreeObserver();
observer.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
int maxLines = (int) reviewView.getHeight()/reviewView.getLineHeight();
reviewView.setMaxLines(maxLines);
reviewView.setEllipsize(TruncateAt.END);
reviewView.getViewTreeObserver().removeGlobalOnLayoutListener(this);
//reviewView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
}
});
Đây là xml của tôi:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fragmentTestLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/restaurantImage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/test"
android:layout_marginTop="-10dp"
android:layout_marginRight="20dp"
android:layout_marginLeft="20dp"
/>
<ImageView
android:id="@+id/squareBlack"
android:layout_alignRight="@id/restaurantImage"
android:layout_alignTop="@id/restaurantImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/square_black_small"
/>
<TextView
android:id="@+id/textViewPosition"
android:layout_alignRight="@id/squareBlack"
android:layout_alignLeft="@id/squareBlack"
android:layout_alignBottom="@id/squareBlack"
android:layout_alignTop="@id/squareBlack"
android:layout_margin="1dp"
android:gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="This is a test"
android:textSize="25sp"
android:textColor="#a6cbff"
android:textStyle="bold"
/>
<ImageView
android:id="@+id/squareBlue"
android:layout_toLeftOf="@id/squareBlack"
android:layout_alignTop="@id/squareBlack"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/square_blue_small"
/>
<TextView
android:id="@+id/textViewPosition1"
android:layout_alignRight="@id/squareBlue"
android:layout_alignLeft="@id/squareBlue"
android:layout_alignBottom="@id/squareBlue"
android:layout_alignTop="@id/squareBlue"
android:layout_margin="1dp"
android:gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="7.5"
android:textSize="25sp"
android:textColor="#902515"
android:textStyle="bold"
/>
<TextView
android:id="@+id/restaurantName"
android:layout_alignLeft="@id/restaurantImage"
android:layout_alignBottom="@id/restaurantImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Restaurant Name"
android:textSize="25sp"
android:textColor="#fff"
android:textStyle="bold"
android:background="@drawable/greybar"
/>
<TextView
android:id="@+id/textViewPosition2"
android:layout_below="@id/restaurantImage"
android:layout_centerHorizontal="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="February 15, 2013"
android:textColor="#555"
android:textStyle="bold"
android:textSize="15sp"
/>
<Button android:id="@+id/readReview"
android:background="@drawable/readreview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:text="Read the Review"
android:textColor="#fff"
android:textColorHighlight="#ccc"
android:textSize="15sp"
android:textStyle="bold"
android:layout_centerHorizontal="true"
/>
<TextView
android:id="@+id/textViewPosition3"
android:layout_below="@id/textViewPosition2"
android:layout_above="@id/readReview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="15sp"
android:textColorLink="#C90404"
android:layout_marginRight="15dp"
android:layout_marginLeft="15dp"
android:textColor="#000"
/>
</RelativeLayout>
Dường như để giải quyết vấn đề. Cám ơn sự tử tế của anh. – Garcon