Di aplikasi saya "Tide Now WA" yang baru-baru ini saya uji kompatibilitasnya menggunakan tablet Nexus 9 baru (Lollipop - API 21).
Itu menulis beberapa tombol teks. Aplikasi ini menulis teks dengan benar menggunakan Android 2.3 dan Android 4.0. Yakni campuran modal dan huruf kecil.
Ketika aplikasi yang sama dijalankan pada Nexus 9 saya, semua huruf dalam teks ditulis dengan huruf kapital.
FWIW manifes saya mengandung pernyataan berikut:
uses-sdk android:minSdkVersion="10" android:targetSdkVersion="14"
Bisakah saya memperbaikinya dalam kode saya atau itu bug di OS terima kasih
android
android-5.0-lollipop
android-button
android-styles
pengguna1644002
sumber
sumber
Jawaban:
Saya tidak tahu mengapa itu terjadi tetapi ada 3 upaya sepele untuk membuat:
Gunakan
android:textAllCaps="false"
dilayout-v21
Secara terprogram mengubah metode transformasi tombol.
mButton.setTransformationMethod(null);
Periksa gaya Anda untuk Allcaps
Catatan :
public void setAllCaps(boolean allCaps)
,android:textAllCaps
yang tersedia dari API versi 14.sumber
<item name="android:textAllCaps">false</item>
definisi gaya sayaInilah yang saya lakukan di nilai / themes.xml saya
sumber
<item name="textAllCaps">false</item>
.buttonStyle
menjadiandroid:buttonStyle
android:textAllCaps="false"
(Saya Menggunakan Android Studio 3.0)Ini dapat diperbaiki dalam kode aplikasi dengan mengatur TransformationMethod tombol, misalnya
sumber
Set android: textAllCaps = "false". Jika Anda menggunakan gaya appcompat, pastikan textAllCaps datang sebelum gaya. Kalau tidak, gaya akan menimpanya. Sebagai contoh:
sumber
tambahkan baris ini dengan gaya
sumber
ini berfungsi .... hanya dalam kode Anda di kode bawah Anda tambahkan satu ini:
itu harus menonaktifkan huruf besar yang Anda coba ketik kecil.
sumber
Lollipop default dilengkapi dengan "textAllCaps true", jadi Anda harus membuatnya secara manual menjadi false
sumber
Tambahkan android: textAllCaps = "false" di
<Button>
tag itu saja.sumber
Ada cara yang lebih mudah yang berfungsi untuk semua tombol, cukup ubah tampilan tombol di tema Anda, coba ini:
di values-21 / styles.xml
PS: disarankan untuk mengikuti prinsip-prinsip desain material, Anda harus menunjukkan teks dengan huruf besar di Buttons, http://www.google.com/design/spec/components/buttons.html
sumber
Menggunakan android.support.v7.widget.AppCompatButton dalam tata letak XML akan memungkinkan Anda untuk menghindari keharusan memiliki tata letak-21 atau secara terprogram mengubah apa pun. Tentu ini juga akan berfungsi dengan pustaka AppCompat v7.
Semoga ini membantu.
sumber
Gunakan baris ini android: textAllCaps = "false" di xml Anda
sumber
Di Android Studio IDE, Anda harus mengklik ikon Filter untuk menampilkan properti ahli. Maka Anda akan melihat
textAllCaps
properti. Periksa, lalu hapus centang.sumber
Anda bisa menambahkan
android:textAllCaps="false"
ke tombol.Teks tombol mungkin diubah menjadi huruf besar oleh tema aplikasi Anda yang berlaku untuk semua tombol. Periksa file tema / gaya untuk mengatur atribut
android:textAllCaps
.sumber
Jawa:
Kotlin:
XML:
Gaya:
Dalam tata letak:
sumber
Jika Anda telah tiba di sini karena teks tombol facebook Anda muncul di semua huruf besar maka tambahkan saja ini
android:textAllCaps="false"
dalam file xml Anda. Ini berhasil untuk saya.sumber
OK, baru saja berlari ke ini. Tombol di Lollipop keluar semua huruf besar DAN font ulang ke 'normal'. Tetapi dalam kasus saya (Android 5.02) itu berfungsi dalam satu tata letak dengan benar, tetapi tidak yang lain !?
Mengubah API tidak berfungsi.
Pengaturan untuk semua huruf besar memerlukan min API 14 dan font masih diatur ulang ke 'normal'.
Itu karena Android Material Styles memaksakan perubahan ke gaya jika tidak ada yang terdefinisi (itu sebabnya ia bekerja di salah satu tata letak saya dan bukan yang lain karena saya mendefinisikan gaya).
Jadi perbaikan yang mudah adalah dengan menentukan gaya dalam manifes untuk setiap aktivitas yang dalam kasus saya hanya:
android: theme = "@ android: style / Theme.NoTitleBar.Fullscreen"
(harap ini membantu seseorang, akan menyelamatkan saya beberapa jam semalam)
sumber
Jika Anda menggunakan
appcompat-v7
, Anda bisa subkelasAppCompatButton
dansetSupportAllCaps(false)
, lalu gunakan kelas ini untuk semua tombol Anda.Lihat AppCompatButton # setSupportAllCaps (boolean) dokumen Android.
sumber
Secara default, Button di android menyediakan semua kata kunci caps. Jika Anda ingin teks tombol dalam huruf kecil atau huruf besar, Anda dapat menonaktifkan
textAllCaps
flag menggunakanandroid:textAllCaps="false"
sumber
Saya tidak tahu mengapa jawaban @ user1010160 mendapat peringkat 0. Saya akan memberi +1 jika saya memiliki reputasi yang cukup.
Karena aplikasi saya dirancang untuk API kurang dari 14 dan saya tidak ingin menambahkan kode ke program saya, saya tidak menemukan solusi sampai saya membaca jawabannya. Apa yang dia katakan adalah bahwa meskipun Anda telah melakukan apa yang diperlukan dalam gaya Aplikasi, itu tidak akan berfungsi kecuali jika Anda menambahkan gaya ke aktivitas Anda dan di sana Anda mengatur textAllCaps menjadi false.
Tidak cukup memiliki gaya untuk aktivitas (aktivitas saya memiliki gaya), karena gaya mungkin default ke properti AllCaps. Anda harus mengatur secara eksplisit, dalam aktivitas juga, properti itu menjadi false.
Saya sekarang memilikinya baik di Aplikasi dan di bagian Kegiatan file manifes.
sumber
Alternatif Kotlin terprogram lainnya:
mButton.transformationMethod = null
sumber