Hapus track scroll bar dari ScrollView di Android


104

Aplikasi Android saya memiliki WebView utama (HTML dimuat dari sumber daya lokal) yang ingin saya gunakan untuk seluruh lebar layar dan dapat membuat (secara vertikal) dapat digulir. Jadi saya telah membungkus WebView dalam ScrollView dalam XML tata letak saya, tetapi apa pun yang saya lakukan, saya sepertinya tidak dapat menghapus track scroll bar dari sisi kanan tampilan scroll. Lebih buruk lagi, saya sepertinya tidak bisa mengubah warna latar belakang trek bilah gulir.

Trek tersebut membutuhkan waktu sekitar 10dp atau lebih, yang menimbulkan masalah untuk HTML di WebView. Saya ingin bilah gulir muncul di atas tampilan web (gaya iPhone, jika Anda mengerti maksud saya). Sekarang, Anda dapat mengatakan "mengapa Anda tidak mengubah HTML Anda menjadi 10px lebih tipis?", Yang merupakan solusi fallback saya, tetapi saya lebih suka tidak perlu melakukannya.

Berikut potongan yang relevan dari layout XML, Anda akan melihat saya telah mencoba setiap atribut android: etc yang dapat saya temukan:

<ScrollView 
  android:id="@+id/deal_web_view_holder"
  android:layout_below="@id/clock_bar_holder"
  android:layout_width="fill_parent" 
  android:layout_height="fill_parent"
  android:fillViewport="false"
  android:fadingEdge="none"
  android:background="#02a7e9"
  android:scrollbars="none"
  android:scrollbarSize="0dp"
  android:paddingRight="0dp"
  android:scrollbarAlwaysDrawVerticalTrack="false"
  android:scrollbarStyle="insideOverlay"
  android:scrollbarTrackVertical="@drawable/scrollbar_track_vertical" >
    <WebView
       android:id="@+id/deal_web_view"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"/>  
</ScrollView>

Saya menargetkan platform 2.1 / API lvl 7, benar-benar hanya berurusan dengan tampilan ukuran normal, mdp, hdp dan xhdp.

Jawaban:


506

Untuk menghapus scrollbar dari tampilan (dan subkelasnya) melalui xml:

android:scrollbars="none"

http://developer.android.com/reference/android/view/View.html#attr_android:scrollbars


1
Ini bukanlah pertanyaan yang diajukan oleh poster pertanyaan. Dia bilang dia akanlike the scrollbar to appear on top of the web view content
Sudhanshu

11
Ini berfungsi tetapi Anda tidak akan dapat menggulir layar saat keyboard terbuka
DeltaCap019

4
android: scrollbarThumbVertical = "@ null" Tambahkan ini di scrollview jika Anda ingin layar Anda menggulir saat keyboard terbuka :)
Biswas Khayargoli

29

coba ini aktivitas Anda diCreate:

ScrollView sView = (ScrollView)findViewById(R.id.deal_web_view_holder);
// Hide the Scollbar
sView.setVerticalScrollBarEnabled(false);
sView.setHorizontalScrollBarEnabled(false);

http://developer.android.com/reference/android/view/View.html#setVerticalScrollBarEnabled%28boolean%29


Terima kasih ... Saya sudah mencobanya (dalam kode dan layout.xml), tetapi pendekatan ini masih mengganggu ukuran horizontal WebView dalam ScrollView. Solusi terbaik adalah yang disediakan di atas, hanya menghapus ScrollView sama sekali dan mengizinkan WebView menangani scrolling itu sendiri. Akar masalah adalah kurangnya pemahaman saya tentang bagaimana saat yang tepat untuk menggunakan ScrollView; yaitu, setiap tampilan di Android dapat menangani pengguliran.
Mick Byrne

18

Saya agak bingung mengapa Anda memasukkan WebViewa ScrollViewdi tempat pertama. A WebViewmemiliki sistem gulir bawaannya sendiri.

Mengenai pertanyaan Anda yang sebenarnya, jika Anda ingin Scrollbartampil di atas, Anda dapat menggunakan

view.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY) or   
android:scrollbarStyle="insideOverlay"

Ya, Anda benar tentang tidak membutuhkan ScrollView sejak awal, saya mengerjakannya sendiri sebelum memeriksa kembali di sini. 'SetScrollBarStyle' di tampilan web bekerja dengan sangat baik, terima kasih!
Mick Byrne

Tidak hanya itu tidak diperlukan, ScrollView tidak dapat berisi tampilan yang dapat digulir, jadi WebView Anda tidak akan tetap menggulir
Orang

3
Tidak bekerja. Jawaban yang benar adalah jawaban Garzahd.
Misagh Emamverdi

3
jawaban yang benar ada di bawah, android: scrollbars = "none"
Araib karim

5

Memecahkan masalah saya dengan menambahkan ini ke saya ListView:

android:scrollbars="none"

4

Solusi ini Gagal dalam kasus saya dengan Tata Letak Relatif dan Jika Papan Tombol Terbuka android:scrollbars="none"& android:scrollbarStyle="insideOverlay"juga tidak berfungsi.

toolbar hilang, tombol selesai saya hilang.

tidak Bekerja

Yang ini Bekerja untuk saya

myScrollView.setVerticalScrollBarEnabled(false);

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.