Saya mengikuti contoh standar tentang cara menambahkan file RatingBar
. Untuk mengontrol jumlah bintang yang saya coba gunakan android:numStars="5"
. Masalahnya adalah jumlah bintang tampaknya tidak berpengaruh sama sekali. Dalam tata letak potret saya mendapatkan 6 bintang dan ketika saya membalik telepon saya mendapatkan sekitar 10 bintang. Saya mencoba mengatur jumlah bintang di Aktivitas saya ( myBar.setNumStars(5)
) yang memuat xml tetapi tidak ada keberhasilan dengan opsi itu juga.
Jadi pertanyaan saya adalah bagaimana cara mendefinisikan tata letak saya sehingga hanya akan menampilkan lima bintang? Set numStars
sepertinya tidak berfungsi.
Terima kasih sebelumnya, Roland
The
RatingBar.setNumStar
dokumentasi mengatakan:Jadi mengatur lebar tata letak menjadi
wrap_content
harus menyelesaikan masalah ini.sumber
Ini berhasil untuk saya:
RatingBar
harus di dalamLinearLayout
selain memiliki lebar tata letak yang disetel untuk membungkus kontenRatingBar
.sumber
Selain itu, jika Anda menyetel a
layout_weight
, ini menggantikannumStars
atribut.sumber
Anda hanya harus menggunakan
numStars="5"
XML Anda, dan setandroid:layout_width="wrap_content"
.Kemudian, Anda dapat bermain-main dengan gaya dan hal-hal lain, tetapi "wrap_content" di layout_width adalah triknya.
sumber
Jika Anda menggunakan
android:layout_width="match_parent"
Gunakan wrap_content dan itu hanya akan menampilkan set numStars :)
android:layout_width="wrap_content"
sumber
Konfigurasikan jumlah Bintang dalam file XML ... Tidak perlu menyediakannya di Gaya atau Aktivitas / Fragmen .... PENTING: Pastikan Anda Menempatkan WIDTH sebagai konten Bungkus dan bobot tidak diaktifkan
sumber
Saya juga menghadapi masalah yang melebihi jumlah bintang daripada jumlah bintang yang ditentukan. Untuk ini, kami tidak ingin khawatir tentang jenis tata letak apa pun, baik tata letak relatif maupun linier. Cukup gunakan lebarnya sebagai berikut:
Harap hindari menggunakan match_parent dan fill_parent untuk ratingbar .
Semoga bisa membantu.
sumber
Bahkan saya menghadapi masalah @Roland, saya telah menyertakan satu atribut lagi yang disebut
dalam
RatingBar
deklarasi saya dalam XML. Atribut ini dicegah dari pengaturan bintang yang diperlukan dan pengaturanNumStars
Terus posting tentang masalah yang Anda temui!
sumber
Bagi saya, saya memiliki masalah sampai saya melepas padding. Sepertinya ada bug di perangkat tertentu yang tidak mengubah ukuran tampilan untuk mengakomodasi padding, dan malah memampatkan konten.
Hapus
padding
, gunakanlayout_margin
sebagai gantinya.sumber
Untuk menunjukkan peringkat bintang sederhana dalam gambar bulat cukup gunakan kode ini
Dan gunakan seperti ini
button.setText (getIntToStar (4));
sumber
Anda dapat menambahkan peringkat default lima bintang di samping tata letak xml
Edit:
sumber
Jika Anda membungkus bagian
RatingBar
dalamConstraintLayout
denganmatch_constraint
untuk lebarnya, pratinjau editor akan menampilkan sejumlah bintang yang sebanding dengan lebar sebenarnya, tidak peduli bagaimana jika Anda menyetelandroid:numStars
properti. Gunakanwrap_content
untuk mendapatkan pratinjau yang benar:sumber
Nilai default disetel dengan andoid: rating dalam tata letak xml.
sumber
sumber
Saya menemukan bahwa angka tersebut
RatingBar
direntangkan hingga jumlah maksimum bintang karena itu tertutup dalam Tabel dengan atributandroid:stretchColumns = "*"
.Setelah saya
stretchCoulumns
melepas semua kolom,RatingBar
ditampilkan sesuai denganandroid:numStars
nilainyasumber
Kemungkinan lainnya adalah Anda menggunakan Rating di Adaptor tampilan daftar
Parameter di bawah ini diperlukan agar semua atribut berfungsi dengan baik:
root
keparent
attachToRoot
sebagaifalse
Contoh: convertView = inflater.inflate (R.layout.myId, parent, false);
sumber
Hal yang sebenarnya di sini adalah dengan menggunakan
wrap_content
bukanmatch_parent
. Jika Anda akan menggunakanmatch_parent
tata letak akan diisi dengan bintang-bintang meskipun lebih dari variabel numStars .sumber