Pandangan Tatal (bar tatal)
Pengenalan kepada bahagian ini:
Bahagian ini membawakan sepersepuluh kawalan UI asas Android: ScrollView (bar skrol), atau kita harus memanggilnya Bar skrol menegak, sepadan dengan bar skrol mendatar yang lain: HorizontalScrollView, mari kita lihat dokumentasi rasmi dahulu Pautan: ScrollView, kita boleh melihat struktur kelas seperti berikut:
Hei, ternyata ia adalah bekas FrameLayout, tetapi berdasarkan ia Menambahkan menatal, membolehkan lebih banyak kandungan dipaparkan daripada yang mungkin!
Selain itu, anda hanya boleh meletakkan satu elemen kanak-kanak di dalam, yang boleh menjadi satu komponen atau hierarki kompleks yang dibalut dalam reka letak!
Secara amnya, untuk situasi di mana paparan mungkin tidak lengkap, kami boleh terus meletakkan satu pada lapisan luar reka letak: ScrollView atau HorizontalScrollView! Semudah itu~!
Sesetengah keperluan yang mungkin anda hadapi
Baiklah, jangan tolak dokumen satu persatu, mari kita bincangkan beberapa keperluan yang mungkin anda hadapi dalam pembangunan sebenar:
Satu lagi masalah biasa ialah: masalah bersarang ScrollView dan ListView Ini diletakkan dalam bab ListView. Mari kita jelaskan~
1 Tatal ke bawah:
Contoh kod:Kami boleh terus menggunakan ScrollView yang menyediakan kami dengan: fullScroll() kaedah : <. 🎜 >
scrollView.fullScroll(ScrollView.FOKUS_DOWN);Tatal ke bawah
scrollView.fullScroll(ScrollView.FOKUS_UP);
Selain itu, semasa menggunakan benda ini, berhati-hati dengan perkara tak segerak, iaitu selepas addView, ia mungkin tidak dipaparkan sepenuhnya. Jika anda memanggil kaedah ini secara langsung pada masa ini, ia mungkin tidak sah Dalam kes ini, anda perlu menulis pengendali anda sendiri untuk mengemas kini~
.
Rendering:Kod pelaksanaan:
Susun aturnya ialah agak mudah, jadi saya tidak akan menyiarkannya di sini, terus tampal MainActivity
MainActivity.java. Sudah tentu, sebagai tambahan kepada kaedah ini, anda juga boleh menggunakan cara penulisan lain yang lebih rumit: Ini lebih mudah: Mendatar Gelangsar arah: android:scrollbarThumbHorizontal
private Button btn_down;
private Button<> peribadi sendiri<>> scroll button private
peribadi; 🎜> peribadi TextView txt_show;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
set Paparan Kandungan(🎜 set
bindViews void private () {
}
txt_show.setText(sb.toString());
}
@Override
pada C public (voil) > suis (v.getId()) {
kes R.id.btn_down:
scrollView.fullScroll( Scroll.< ; FOKUS > kes R.id.btn_up:
scrollView.fullScroll(ScrollView.FOCUS_UP);
rehat;
}
}
}
Pengendali mHandler = Pengendali baharu();
mHandler.post(Tatal Boleh Dijalankan baharu() {
larian void awam() {
if (scroll == null || inner == null) {
return;
}
int offset = inner.getMeasuredHeight() - scroll.getHeight();
) {
Parameter
scrollTo
() ialah x, y tatal ke kedudukan x, y yang sepadan!
Gelangsar arah: android:scrollbarThumbVertical
3. Sembunyikan peluncur Baiklah, yang ini Nampaknya tiada gunanya:
Terdapat dua kaedah:
1.android:scrollbars="none"2.Tetapan kod Java: scrollview.setVerticalScrollBarEnabled(false);
4 🎜>Ini tidak memberikan kita kaedah yang boleh ditetapkan secara langsung. Kita perlu mewarisi ScrollView sendiri dan kemudian menulisnya semula.
Kaedah melontarkan kekosongan awam (int velocityY):
@Override
public void fling(int velocityY) {
super.fling(velocityY / 2); //速度变为原来的一半
}