Karena persyaratan saya menggantikan textView yang ada findViewById(getResources().getIdentifier("xxx", "id", "android"));
, maka saya tidak bisa mencoba onDraw()
jawaban lain.
Tapi saya baru saja mencari tahu langkah yang tepat untuk memperbaiki masalah saya, berikut ini adalah hasil akhir dari Inspektur Tata Letak:
Karena yang saya inginkan hanyalah menghapus spasi teratas, jadi saya tidak perlu memilih font lain untuk menghapus spasi bawah.
Ini kode penting untuk memperbaikinya:
Typeface mfont = Typeface.createFromAsset(getResources().getAssets(), "fonts/myCustomFont.otf");
myTextView.setTypeface(mfont);
myTextView.setPadding(0, 0, 0, 0);
myTextView.setIncludeFontPadding(false);
Kunci pertama adalah mengatur font "fonts / myCustomFont.otf" khusus yang memiliki ruang di bagian bawah tetapi tidak di bagian atas, Anda dapat dengan mudah mengetahuinya dengan membuka file otf dan mengklik font apa saja di android Studio:
Seperti yang Anda lihat, kursor di bagian bawah memiliki spasi tambahan tetapi tidak di bagian atas, jadi itu memperbaiki masalah saya.
Kunci kedua adalah Anda tidak bisa melewatkan kode apa pun , jika tidak, kode itu mungkin tidak berfungsi. Itulah alasan Anda dapat menemukan beberapa orang berkomentar bahwa jawaban itu berfungsi dan beberapa orang lain berkomentar bahwa itu tidak berfungsi.
Mari kita ilustrasikan apa yang akan terjadi jika saya menghapus salah satunya.
Tanpa setTypeface(mfont);
:
Tanpa setPadding(0, 0, 0, 0);
:
Tanpa setIncludeFontPadding(false);
:
Tanpa 3 dari mereka (yaitu yang asli):