Menombor Teks dalam Android
Masalah:
Menomborkan teks dalam kawalan TextView dalam Android memerlukan penentuan bila dan bagaimana untuk memecahkan teks ke dalam halaman. Ini boleh mencabar kerana algoritma pemisah baris dan pemecah halaman TextView tidak mudah diakses, menjadikannya sukar untuk mengenal pasti di mana teks berakhir pada paparan sebenar.
Penyelesaian:
Dengan memantau julat teks yang boleh dilihat menggunakan ViewTreeObserver, adalah mungkin untuk menjejaki baris terakhir yang sesuai sepenuhnya dalam paparan ketinggian. Ini membolehkan penciptaan halaman berdasarkan ketinggian kumulatif garisan, memastikan halaman dipecahkan apabila garisan ditemui melebihi ruang menegak yang tersedia.
Algoritma:
Pelaksanaan:
Untuk melaksanakan algoritma ini, gunakan yang berikut kod:
// Setup code ViewTreeObserver vto = txtViewEx.getViewTreeObserver(); vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() { @Override public void onGlobalLayout() { ViewTreeObserver obs = txtViewEx.getViewTreeObserver(); obs.removeOnGlobalLayoutListener(this); height = txtViewEx.getHeight(); scrollY = txtViewEx.getScrollY(); Layout layout = txtViewEx.getLayout(); firstVisibleLineNumber = layout.getLineForVertical(scrollY); lastVisibleLineNumber = layout.getLineForVertical(height + scrollY); } });
Nota:
Penyelesaian ini memancarkan penomboran teks dengan cekap sambil menghormati ketinggian baris dan jarak aksara. Ia juga mengendalikan aksara khas dan perubahan teks dinamik.
Atas ialah kandungan terperinci Bagaimana untuk Menghitamkan Teks dalam Kawalan TextView dalam Android?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!