Saya ingin menambahkan ketinggian khusus ke dropdown dari Spinner
, katakanlah 30dp, dan saya ingin menyembunyikan pembagi daftar dropdown dari Spinner
.
Sejauh ini saya mencoba menerapkan gaya berikut ke Spinner
:
<style name="spinner_style">
<item name="android:paddingLeft">0dp</item>
<item name="android:dropDownWidth">533dp</item>
<item name="android:showDividers">none</item>
<item name="android:dividerHeight">0dp</item>
<item name="android:popupBackground">@drawable/new_bg</item>
<item name="android:dropDownHeight">70dp</item>
<item name="android:scrollbarAlwaysDrawVerticalTrack">true</item>
<item name="android:dropDownSelector">@android:color/white</item>
</style>
dan kode pemintal saya adalah:
<Spinner
android:id="@+id/pioedittxt5"
android:layout_width="543dp"
android:layout_height="63dp"
android:layout_toRightOf="@+id/piotxt5"
android:background="@drawable/spinner"
style="@style/spinner_style"
android:dropDownVerticalOffset="-53dp"
android:spinnerMode="dropdown"
android:drawSelectorOnTop="true"
android:entries="@array/travelreasons"
android:prompt="@string/prompt" />
Tapi sepertinya tidak ada yang berhasil.
Jawaban:
Buat adaptor khusus dengan tata letak khusus untuk pemintal Anda.
R.layout.simple_spinner_item
R.layout.simple_spinner_dropdown_item
Dalam gaya tambahkan dimensi khusus dan tinggi sesuai kebutuhan Anda.
sumber
<item name="android:height">
ke<item name="android:layout_height">
android:id="@+android:id/text1"
dalam file simple_spinner_dropdown_item.xml?Anda dapat membuat desain pemintal sepenuhnya kustom seperti
Langkah1: Di folder yang bisa digambar, buat background.xml untuk batas pemintal.
Step2: untuk desain tata letak spinner gunakan ikon drop-down ini atau gambar drop.png apa pun
Akhirnya terlihat seperti gambar di bawah ini dan di mana-mana dapat diklik di area bundar dan tidak perlu menulis klik Lister untuk imageView.
Langkah 3: Untuk desain drop-down, hapus garis dari Dropdown ListView dan ubah warna latar belakang, Buat adaptor khusus seperti
Dalam folder layout buat R.layout.spinner_text.xml
Dalam folder layout buat simple_spinner_dropdown.xml
Dalam gaya, Anda dapat menambahkan dimensi dan tinggi khusus sesuai kebutuhan Anda.
Akhirnya terlihat seperti
Menurut persyaratan, Anda dapat mengubah warna latar belakang dan teks warna drop-down dengan mengubah warna latar belakang atau warna teks simple_spinner_dropdown.xml
sumber
Solusi paling elegan dan fleksibel yang saya temukan sejauh ini ada di sini: http://android-er.blogspot.sg/2010/12/custom-arrayadapter-for-spinner-with.html
Pada dasarnya, ikuti langkah-langkah ini:
Buat kelas tampilan khusus, untuk Adapter dropdown Anda. Di kelas khusus ini, Anda perlu menimpa dan mengatur tata letak item dropdown kustom di metode getView () dan getDropdownView (). Kode saya adalah sebagai berikut:
Dalam aktivitas atau fragmen Anda, gunakan adaptor khusus untuk tampilan pemintal Anda. Sesuatu seperti ini:
di mana opsi adalah daftar string item dropdown.
sumber
Coba ini
Saya menghadapi banyak masalah ketika saya mencoba solusi lain ...... Setelah banyak R&D sekarang saya mendapat solusi
buat custom_spinner.xml di folder tata letak dan tempel kode ini
dalam aktivitas Anda
buat kelas adaptor baru
sumber
Ini bekerja untuk saya:
dan di folder layout saya saya buat
simple_spinner_item
:sumber
Saya telah membangun proyek demo kecil di sini Anda bisa melihatnya Tautan ke proyek
sumber