Pertanyaan Kustom 'Keyboard' dibangun di aplikasi di Android


Saya sudah mencari untuk membuat keyboard khusus untuk aplikasi saya. Pada awalnya, saya mulai melihat SoftKeyboard untuk contoh-contoh SDK, tetapi membaca Grup Pengembang Android membawa saya ke posting ini:

Ini benar-benar bukan cara inputnya   kerangka kerja metode seharusnya berfungsi.   IME harus menjadi masukan umum   fasilitas, bukan untuk tertentu   aplikasi. Jika Anda membutuhkannya   masukan khusus aplikasi, Anda harus membangun   ke UI Anda, bukan mendorong   itu untuk IME generik.

Bagaimana saya membangun masukan khusus aplikasi dalam UI? Maksud saya, apakah ada cara untuk memperpanjang Keyboard aplikasi atau sesuatu dan menggunakannya hanya di aplikasi saya?

Fitur yang dibutuhkan untuk keyboard:

  • Tombol Shift untuk menampilkan beberapa kunci lainnya
  • Tombol khusus seperti akar kuadrat atau PI
  • dll.

PS: solusi jelek mungkin adalah membuat tabel ImageButton misalnya, tapi saya ingin membuat sesuatu yang bersih.


32
2017-07-07 15:53


asal


Jawaban:


Saya tidak begitu yakin apakah ada solusi langsung untuk ini (sejauh itu bahkan mungkin untuk memahami alasan sebenarnya di balik pertanyaan asli).

Seperti dikutip dalam pertanyaan asli:

Jika Anda memerlukan beberapa masukan khusus aplikasi, Anda harus membuatnya menjadi UI Anda   daripada mendorongnya ke IME generik.

Yang dimaksud dengan itu, adalah tidak bahwa Anda dalam aplikasi Anda harus mencoba membangun fitur masukan seperti itu oleh memperluas atau memodifikasi keyboard lunak di telepon. Ada begitu banyak soft keyboard yang berbeda (dan pada dasarnya, soft keyboard hanyalah aplikasi lain), karena sebagian besar produsen ponsel membuat versi mereka sendiri, dan orang-orang mengunduh keyboard pihak ketiga (seperti Swype atau SwiftKey, dll.), dan saya tidak dapat membayangkan ada sebuah cara bagi Anda untuk "meretas" ke dalamnya untuk menambahkan beberapa tombol atau apa pun yang Anda inginkan (yang juga bisa menjadi lubang keamanan utama, alasan lain mengapa itu mungkin tidak mungkin).

Sebaliknya, kutipan di atas menunjukkan bahwa Anda harus membuat beberapa lain bentuk input selain keyboard. Salah satu contohnya, dan yang sangat bagus jika saya tambahkan, adalah bagaimana Kalkulator Ilmiah RealCalc terlihat:

RealCalc Scientific Calculator

Sekarang ini bukan open source, jadi saya hanya bisa menebak bagaimana kode terlihat (tetapi seharusnya tidak terlalu sulit ditebak): dalam bentuk yang paling sederhana, ini hanyalah sebuah grid dengan banyak tombol. Setiap tombol menangani acara onClick, yang berarti melakukan semacam tindakan (mengubah label pada beberapa tombol lain, menampilkan menu, menampilkan beberapa teks di label atas atau apa pun), dan itu mungkin cukup banyak apa untuk itu. Dan tentu saja, keyboard lunak ponsel tidak pernah ditampilkan (karena Anda tidak memerlukan keyboard dengan semua tombol itu (dan juga tidak ada kolom input untuk menulis apa pun di dalamnya)).

Itu semua bermuara pada kutipan yang telah disebutkan: Jika Anda memerlukan beberapa masukan khusus aplikasi, Anda harus membuatnya menjadi UI Anda. Atau dengan kata lain: buat tombol (dan jangan tampilkan keyboard lunak jika Anda tidak membutuhkannya) dan buat sesuatu terjadi saat Anda mengekliknya.


Dan hanya untuk menyebutkannya: jika Anda melakukan ingin membuat IME Anda sendiri (yang saya sangat yakini tidak kasusnya di sini), Anda harus melihat sumber daya berikut:


18
2018-01-18 19:28



Menurut pendapat saya, Anda harus melihat pada awal referensi tentang tampilan keyboard dan keyboard http://developer.android.com/reference/android/inputmethodservice/Keyboard.html dan http://developer.android.com/reference/android/inputmethodservice/KeyboardView.html.

Di sana Anda dapat melihat contoh mendefinisikan keyboard menggunakan file XML. Saya pikir ini adalah apa yang Anda cari.


9
2018-01-18 20:02



Seperti yang disebutkan oleh @ sebap123 Keyboard dan KeyboardView kelas yang harus Anda gunakan,

Selanjutnya, untuk Implementasi, di sini adalah a panduan cepat rinci.


2
2018-02-23 07:19