Tôi đang sử dụng RecyclerView
với RatingBar
trong mỗi hàng. Bây giờ, đôi khi một phần của RatingBar
s được vẽ không chính xác. Sau khi rời khỏi màn hình và quay trở lại, tất cả trở lại bình thường. Tôi không biết tại sao điều này xảy ra, tôi thậm chí đã xóa bất kỳ kiểu nào từ RatingBar
do đó nó phải có giao diện mặc định.RatingBar đang nhận được bán trong suốt
Đây là cách nó trông:
Thử nghiệm trên Nexus 6P (Android 7.1.1). Cũng được thử nghiệm trên Samsung Galaxy J3 (2016) (Android 5.1.1) và không có vấn đề gì ở đây.
Tôi cũng đã thêm
holder.rbRating.requestLayout();
trong onBindViewHolder()
. Nó làm giảm vấn đề một chút, nhưng nó vẫn còn hiện diện. Khi tôi cuộn một hàng "xấu" ra khỏi màn hình khi nó được tái sử dụng thì có vẻ ổn.
Dưới đây là cách bố trí hàng:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:paddingTop="@dimen/main_margin_top"
android:paddingBottom="@dimen/main_margin_top"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/tvRatingTitle"
android:text="Czystość wody"
android:textSize="16sp"
android:textStyle="bold"
android:layout_centerHorizontal="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<RatingBar
android:id="@+id/rbRating"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:isIndicator="true"
android:layout_centerHorizontal="true"
android:layout_below="@+id/tvRatingTitle"
android:numStars="5"
android:rating="2.5"
android:stepSize="0.1" />
<CheckBox
android:id="@+id/chkMissing"
android:text="Zaznacz jeśli nie ma"
android:layout_centerHorizontal="true"
android:layout_below="@+id/rbRating"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
Tôi cũng đã thử chuyển sang android.support.v7.widget.AppCompatRatingBar
, nhưng nó không thực hiện bất kỳ sự khác biệt.
EDIT:
giải pháp @Muhib Pirani dường như được làm việc, nhưng tôi có 2 vấn đề nhỏ:
1) trên Nexus 6P lớp đầu tiên của ngôi sao đang offsetted bởi vài điểm ảnh (phóng to để xem):
2) Mở Samsung Galaxy J3 (2016) nó trông như thế này:
Tôi ổn với đường viền nhưng tôi muốn chúng có màu xanh lục (không phải màu xám, nền cũng phải có màu xám) trong các ngôi sao trống.
Chụp phân cấp chế độ xem qua 'Công cụ -> Android -> Trình theo dõi bố cục' và xem sự khác biệt chính giữa' RatingBar' đó là gì. Khi bạn tìm thấy thuộc tính dẫn đến hành vi này, sẽ dễ dàng hơn khi tìm ra nguyên nhân thực sự. Có vẻ như đó là kênh alpha được thay đổi hoặc bằng cách nào đó một màu được áp dụng. – azizbekian