Adakah cara untuk menambahkan tombol ke bagian bawah layar preferensi dan membuatnya berfungsi dengan benar saat menggulir?
android
android-preferences
vlaku
sumber
sumber
Jawaban:
Ada solusi lain untuk menyesuaikan tampilan preferensi.
Rancang tata letak XML normal dengan tombol atau apa pun yang ingin Anda tambahkan ke preferensi standar. Sertakan a
ListView
dalam tata letak Anda dan berikan ID tersebut@android:id/list
.Katakanlah kita memanggil file layout
res/layout/main.xml
. Ini bisa terlihat seperti ini:Di Anda
PreferenceActivity
, tambahkan dua baris ini ke AndaonCreate
:Dalam
ListView
tata letak Anda kemudian akan diganti dengan preferensi yang ditentukan dengan cara biasares/xml/preferences.xml
.sumber
Saya tahu ini agak terlambat, tetapi saya baru saja menemukan solusi yang saya suka lebih baik daripada solusi Max yang dipuji.
Anda cukup menambahkan footer (atau jika Anda ingin tombol berada di atas, sebuah header) ke ListView PreferenceActivity seperti ini:
Saya harap ini membantu seseorang.
sumber
ListView
dengan PreferenceFragment :(PreferenceFragment
memiliki daftarnya sendiri), tetapi saya menyelesaikannya hanya dengan membuatPreference
dan menetapkanIntent
di atasnya. Tidak perlu membuat tombol (setidaknya dalam kasus saya)Contoh di bawah ini akan membuat tombol di bagian bawah halaman (jika ada yang masih tertarik).
Dalam kasus LinearLayout Anda juga bisa menerapkan bobot; ini diperlukan karena Listview disetel ke * fill_parent *. Saya biasanya melakukan ini dengan menambahkan * android: layout_weight *:
Penjelasan di bawah ini tidak mungkin 100% tetapi akan membantu Anda memahami ...
Bisa juga dibilang, karena Button tidak memiliki bobot; tombol dirender pada ketinggian 0dp.
Sekarang dengan menambahkan layout_weigths, tombol akan menampilkan tampilan
sumber
Sebenarnya ada solusinya. Ini kodenya, semoga bermanfaat bagi siapa saja. Sepertinya 3 opsi dan 2 tombol di bagian bawah layar, terlepas dari resolusi layar (ditargetkan 240 sebagai terendah)
sumber
Anda hanya perlu menggunakan PreferenceFragment di dalam General Activity dan menambahkan tombol ke dalam layout aktivitas.
SettingActivity.java
activity_setting
sumber
buttonSave
:)Ini akan menjadi seperti apa kodenya dalam aktivitas di contoh ronny. Maksud saya adalah meletakkan menu di sisi bawah layar.
sumber
Saya mereferensikan @Ronnie, menggunakan RelativeLayout dan menyetel ketinggian untuk layout_height listview, lalu menyetel tombol layout_alignParentBottom = "true", Ini dapat membuat tombol di bagian bawah PreferenceScreen; lalu gunakan cara @Max. itu bekerja untuk kebutuhan saya.
sumber
Dimungkinkan juga untuk menambahkan tombol Tindakan ke bilah tindakan untuk pendekatan standar android.
sumber
Tampilan kustom di Preference Activity ini akan membantu menambahkan tampilan kustom di PreferenceActivity di Android.
Buat main.xml, pandangan hanya diperlukan adalah ListView, dengan id:
android:id="@android:id/list"
.Buat CustomPreferenceActivity.java
sumber
Berikut ini adalah solusi sederhana untuk menambahkan tombol yang dapat diklik ke layar preferensi Anda. Ini dipermudah karena preferensi sudah mencadangkan ruang di android: widgetLayout dan tombolnya dapat mengirimkan klik dengan android: onClick.
Pertama buat button.xml dengan konten
Sekarang di preferensi.xml Anda, tambahkan preferensi
PreferenceActivity Anda sekarang hanya harus berisi anggota onButtonClick
sumber
Preferensi.xml:
SettingsFragment.java:
sumber
Saya menemukan semua jawaban di atas tidak dapat digunakan karena tata letak apa pun yang saya buat untuk 'membungkus'
PreferenceScreen
wadah di dalam tata letak khusus (kemudian menambahkan tombol di bawahListView
) tidak benar-benar berfungsi.Mereka hanya melapisi tata letak kustom di atas daftar preferensi (mengambang), dan mengklik (misalnya) tombol kustom baru hanya akan memanggil preferensi di bawah tombol.
Namun, saya menemukan solusi ini yang berfungsi baik untuk menambahkan tombol di bawah wadah daftar preferensi, saat menggunakan
PreferenceFragment
.sumber